Windows Presentation Foundation
היררכיה

עצם שיגור Dispatcher: ממשק המשתמש מנוהל באמצעות תהליכון יחיד בשיטת STA. הגישה לתכונות הממשק מבוצעת דרך עצם השיגור שנולד עם יצירת החלון באמצעות המחלקה האבסטרקטית Dispatcher. עצם זה שולט בתהליכון היישום, מנהל את תור העבודות המתבצעות בו ואחראי לתיאום הודעות כגון קלט מקלדת או תהליכי מסגרת כמו שכבות תצוגה. עצם השיגור מאפשר ליצור קוצבי זמן (Timers) או תהליכונים חדשים ומספק קוד בטוח לעדכון הממשק ומבטיח שלא תתבצע הפרה של גישה לזיכרון בין תהליכים.
עצם תלות Dependency: האינטראקציה עם אלמנטים בחלון היישום מתבצעת באמצעות מאפיינים (Properties). כדי להימנע מעומס קוד החליטו מהנדסי WPF ליצור מודל חדש וחסכוני יותר והגיעו לרעיון "מאפייני תלות". שיטה שבה ניתן להדביק לכל אלמנט מאפיינים חדשים שלא היו לו קודם כמו קישור למסד נתונים או אנימציה. השם נגזר מהעובדה שלעיתים מאפיין אינו מוצהר באלמנט המשתמש בו ואף לא קיים בו כלל אלא ייתכן כירושה מאחד העצמים במעלה שרשרת ההורשה (זו תכונה חדשה שנוספה - הורשת ערכים), ערך ברירת מחדל, נגזר מהמכולה אליה שייך או מוגדר במפורש על ידי המשתמש. לכן כאשר נגשים למאפיין, מבצע WPF סידרה של בדיקות לפי סדר עדיפויות מסוים ומוודא תקפות והתאמה למאפיינים אחרים של האלמנט, כמו ערכי מינימום ומקסימום, על מנת לחלץ את הערך הנכון. כמו כן נוספה יכולת "התראה" על שינויים (Notification), כלומר כל אלמנט יוכל לקבל הודעה כאשר מאפיין מסוים שונה באלמנט אחר. למעשה כל מאפייני האלמנטים ב-WPF הם מאפייני תלות, למרות שקיים דמיון באופן שימושם למאפיינים הרגילים של ‎.NET, המבנה הפנימי ושיטת האחסון שלהם שונים לגמרי.
עצם Visual: מחלקה אבסטרקטית האחראית לקישור בין אלמנטים של WPF לבין ליבת התצוגה. לכל אלמנט שנגזר ממנה מוקנת יכולת תצוגה למסך והוא מכמס בתוכו את כל הוראות התצוגה שלו; רקע, גזירה (Clipping), שקיפות, טרנספורמציות (מתיחה, הטיה, היפוך), פונקציונליות בסיסית כמו בדיקת פגיעה (של סמן העכבר) וכדומה. אפשר ליצור מעצמים אלו ממשק מותאם וקל משקל מבלי להזדקק לאלמנטים העיליים.
אלמנט UIElement: מחלקת האלמנטים העיליים של הממשק שיורשת מהמחלקה Visual בה נוספו תוכנות בסיסיות של WPF; סידור בשכבות, קלט, פוקוס ואירועים (או LIFE, קיצור של Layout Input Focus Events). האירועים המטופלים באלמנטים כגון עכבר ומקלדת מעובדים בשיטה חדשה הנקראת "אירועים מנותבים". בשיטה זו כל אירוע מנותח ומנותב בשכבות החלון באופן כזה שניתן ליירטו בכל אלמנט גם אם מעליו קיימים אלמנטים אחרים.
אלמנט מסגרת Framework: הוא התחנה הסופית בשרשרת ההורשה של ליבת WPF. למרות שחלק מהתכונות כבר מטופלות ברמה כזו או אחרת בשכבות שמתחתיה, שכבת המסגרת מעמיקה בהם את הטיפול אף יותר. כגון אופן סידור האלמנטים, יישור אופקי או אנכי אוטומטי לשולי המכולה (ימין או שמאל, מעלה או מטה), או הזחות (Margin) וכן נוספים בשכבה זו יכולות הנפשה, קישור למידע וסגנונות. כל העצמים העיליים כמו צורות, פאנלים, פקדים וחלונות נגזרים מאלמנט המסגרת.
עצמי צורה Shapes: ב-WPF נוסף מגוון של עצמי צורה דו־ממדיים, מלבן, פוליגון, אליפסה, קו ומסלול, שלהם מחלקת אם אבסטרקטית Shape שנגזרת בתורה ממחלקת Framework. אי לכך Shapes אינן רק צורות אלא אלמנטים לכל דבר ועניין. אפשר להוסיף להם תבניות, סגנונות, אנימציה, קישור למידע, טיפול באירועים וכן הלאה. צורות בסיסיות אילו ניתנות לגיבוב לצורות מורכבות ומתוחכמות יותר.
פקדים Controls : עצמים אילו מייצגים את העצמי החלון המסורתיים של חלונות כגון תיבות טקסט תיבות סימון וכפתורים, שתפקידם לתקשר עם המשתמש. לעצמים אילו נוספה יכולת מובנית חדשה שנקראת תבניות (Templates) שמאפשרת להחליף את המראה הסטנדרטי של הפקד בסגנון מותאם אישית. עצמי הפקדים מתחלקים לשלושה סוגים עיקריים.
פקד מכולה Content: לכל הפקדים ב-WPF נוספה יכולת להכיל אלמנט יחיד כלשהו, כולל מכולה. בדרך זו ניתן ליצור היררכיה של אלמנטים, אחד מכיל את השני שמכיל את השלישי וכן הלאה. סדר הצגתם נובע מהמבנה ההיררכי, כאשר האחרון שנוסף יופיע בשכבה העליונה ביותר.
פקד פריטים Items: מחלקת הבסיס שאחראית לכל האלמנטים שמסוגלים להכיל יותר מאלמנט אחד, כמו רשימות, עצים וכדומה. בדרך זו ניתן ליצור בקלות אלבום תמונות או רשימה של תיבות סימון או כל דבר אחר העולה על הדעת. סרגלי הכלים, תפריטים ושורת המצב הם סוג של פקד פריטים ולמעשה יורשים ממחלקת בסיס זו.
פאנל: מכולת סידור אבסטרקטית חדשה שאחראית לכל האלמנטים שמסוגלים להכיל כל מספר של אלמנטים אחרים ולסדרם לפי חוקיות מסוימת בהתאם לאופי המכולה. סידור אוטומטי בשורות, עמודות, בתאי טבלה כמו במכולת Grid או חופפים (עם קואורדינטות מפורשות) כמו במכולת Canvas. פאנלים הם מהנדבכים החשובים בעיצוב חלון WPF, הם מייתרים את הצורך לקבוע קואורדינטות מפורשות לכל אלמנט, בעזרתם ניתן לשלוט באופן אוטומטי בתצוגת האלמנטים בחלון ולהתאימה באופן דינאמי למצבים השונים כמו שינוי גודל החלון או רזולוציית המסך.