Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Windows Presentation Foundation (WPF) egy bemutatóplatform, amely számos vezérlőt és vezérlőszerű típust biztosít, amelyek elsődleges célja különböző típusú tartalmak megjelenítése. Annak meghatározásához, hogy melyik vezérlő használata vagy amelyik vezérlőből történő származtatás a legjobb, ismernie kell azokat az objektumtípusokat, amelyeket egy adott vezérlő a legjobban képes megjeleníteni.
Ez a témakör a WPF-vezérlők és vezérlőszerű típusok tartalommodelljének összegzését foglalja össze. A tartalommodell leírja, hogy milyen tartalmak használhatók a vezérlőkben. Ez a témakör az egyes tartalommodellek tartalomtulajdonságainak listáját is felsorolja. A tartalomtulajdonság az objektum tartalmának tárolására szolgáló tulajdonság.
Tetszőleges tartalmat tartalmazó osztályok
Egyes vezérlők bármilyen típusú objektumot tartalmazhatnak, például sztringet, DateTime objektumot vagy olyan UIElement, amely további elemek tárolója. Egy Button például tartalmazhat képet és szöveget; vagy egy CheckBox a DateTime.Nowértékét is tartalmazhatják.
A WPF négy osztályt tartalmaz, amelyek tetszőleges tartalmat tartalmazhatnak. Az alábbi táblázat a Controlöröklő osztályokat sorolja fel.
Tetszőleges tartalmat tartalmazó osztály | Tartalom |
---|---|
ContentControl | Egyetlen tetszőleges objektum. |
HeaderedContentControl | Egy fejléc és egy elem, amelyek mindegyike tetszőleges objektum. |
ItemsControl | Tetszőleges objektumok gyűjteménye. |
HeaderedItemsControl | Egy fejléc és egy elemgyűjtemény, amelyek mindegyike tetszőleges objektum. |
Az osztályoktól öröklő vezérlők ugyanazt a tartalomtípust tartalmazhatják, és ugyanúgy kezelhetik a tartalmat. Az alábbi ábrán egy vezérlő látható minden olyan tartalommodellből, amely képet és szöveget tartalmaz:
Egyetlen tetszőleges objektumot tartalmazó vezérlők
A ContentControl osztály egyetlen tetszőleges tartalmat tartalmaz. A tartalom tulajdonsága Content. A következő vezérlők öröklik a ContentControl-tól és annak tartalommodelljét használják:
Az alábbi ábra négy gombot mutat be, amelyek egy sztringként megadott Content-t, egy DateTime objektumot, egy Rectangle-t, valamint egy Panel-mat ábrázolnak, ami Ellipse-et és TextBlock-t tartalmaz.
A Content tulajdonság beállítására példa: ContentControl.
Fejlécet és tetszőleges objektumot tartalmazó vezérlők
A HeaderedContentControl osztály az ContentControl-ből örököl, és a tartalmat fejléccel jeleníti meg. Az Contenttartalomtulajdonságot a ContentControl örökli, és meghatározza a Header tulajdonságot, amely a Objecttípusába tartozik; ezért mindkettő tetszőleges objektum lehet.
A következő vezérlők öröklik a HeaderedContentControl-tól és annak tartalommodelljét használják:
Az alábbi ábrán két TabItem objektum látható. Az első TabItem a UIElement objektumokat tartalmazza, mint a Header és a Content. A Header egy olyan StackPanel-re van állítva, amely tartalmaz egy Ellipse-t és egy TextBlock-t. A Content úgy van beállítva, hogy egy StackPanel tartalmaz egy TextBlock-t és egy Label-t. A második TabItem egy sztringet tartalmaz a Header-ben, és a TextBlock-ban egy Content-t.
Az TabItem objektumok létrehozásának módjáról a HeaderedContentControlcímű témakörben talál példát.
Tetszőleges objektumok gyűjteményét tartalmazó vezérlők
A ItemsControl osztály a Control öröklődik, és több elemet is tartalmazhat, például sztringeket, objektumokat vagy egyéb elemeket. A tartalom tulajdonságai ItemsSource és Items. ItemsSource-t általában arra használják, hogy feltöltsék a ItemsControl-et egy adatgyűjteménnyel. Ha nem szeretne gyűjteményt használni a ItemsControlfeltöltéséhez, a Items tulajdonság használatával adhat hozzá elemeket.
A következő vezérlők öröklik a ItemsControl-tól és annak tartalommodelljét használják:
Az alábbi ábrán az alábbi típusú elemeket tartalmazó ListBox látható:
Egy karakterlánc.
Egy DateTime objektum.
A UIElement.
Egy Panel, amely tartalmaz egy Ellipse-et és egy TextBlock-t.
Fejlécet és tetszőleges objektumok gyűjteményét tartalmazó vezérlők
A HeaderedItemsControl osztály a ItemsControl öröklődik, és több elemet, például sztringeket, objektumokat vagy egyéb elemeket és fejléceket tartalmazhat. Örökli a ItemsControl tartalomtulajdonságokat, ItemsSourceés Items, és meghatározza a Header tulajdonságot, amely tetszőleges objektum lehet.
A következő vezérlők öröklik a HeaderedItemsControl-tól és annak tartalommodelljét használják:
UIElement-objektumok gyűjteményét tartalmazó osztályok
A Panel osztály elhelyezi és elrendezi a gyermek UIElement objektumokat. A tartalom tulajdonsága Children.
A következő osztályok örökölnek a Panel osztálytól, és annak tartalommodelljét használják:
További információ: Panelek áttekintése.
A felhasználói felület megjelenését befolyásoló osztályok
A Decorator osztály vizuális effektusokat alkalmaz egyetlen alárendelt elem UIElementköré vagy rá. A tartalom tulajdonsága Child. A következő osztályok örökölnek Decorator, és annak tartalommodelljét használják:
Az alábbi ábrán egy TextBox látható, amely körül Border van (díszítve).
Szegéllyel rendelkező szövegdoboz
Vizuális visszajelzést küldő osztályok a felhasználói felületről
A Adorner osztály vizuális jeleket biztosít a felhasználó számára. Például használjon Adorner-t, hogy funkcionális fogópontokat adjon az elemekhez, vagy hogy állapotinformációkat szolgáltasson egy vezérlőről. A Adorner osztály egy keretrendszert biztosít, amely lehetővé teszi saját díszítők létrehozását. A WPF nem biztosít implementált adornereket. További információ: Adorners overview.
Osztályok, amelyek lehetővé teszik a felhasználók számára a szöveg bevitelét
A WPF három elsődleges vezérlőt biztosít, amelyek lehetővé teszik a felhasználók számára, hogy szöveget írjanak be. Minden vezérlőelem másképp jeleníti meg a szöveget. Az alábbi táblázat felsorolja ezt a három szöveghez kapcsolódó vezérlőt, azok szövegmegjelenítési képességeit, valamint a vezérlő szövegét tartalmazó tulajdonságokat.
Vezérlő | A szöveg a következőképpen jelenik meg: | Tartalomtulajdonság |
---|---|---|
TextBox | Egyszerű szöveg | Text |
RichTextBox | Formázott szöveg | Document |
PasswordBox | Rejtett szöveg (a karakterek maszkoltak) | Password |
A szöveget megjelenítő osztályok
Több osztály is használható egyszerű vagy formázott szövegek megjelenítésére. A TextBlock használatával kis mennyiségű szöveget jeleníthet meg. Ha nagy mennyiségű szöveget szeretne megjeleníteni, használja a FlowDocumentReader, FlowDocumentPageViewervagy FlowDocumentScrollViewer vezérlőket.
A TextBlock két tartalomtulajdonságból áll: Text és Inlines. Ha konzisztens formázást használó szöveget szeretne megjeleníteni, gyakran a Text tulajdonság a legjobb választás. Ha a szöveg különböző formázását tervezi használni, használja a Inlines tulajdonságot. A Inlines tulajdonság Inline objektumok gyűjteménye, amelyek meghatározzák a szöveg formázását.
Az alábbi táblázat a FlowDocumentReader, FlowDocumentPageViewerés FlowDocumentScrollViewer osztályok tartalomtulajdonságát sorolja fel.
Vezérlő | Tartalomtulajdonság | Tartalomtulajdonság típusa |
---|---|---|
FlowDocumentPageViewer | Dokumentum | IDocumentPaginatorSource |
FlowDocumentReader | Dokumentum | FlowDocument |
FlowDocumentScrollViewer | Dokumentum | FlowDocument |
A FlowDocument implementálja a IDocumentPaginatorSource felületet; ezért mindhárom osztály egy FlowDocument-őt tartalomként vehet fel.
A szöveget formázó osztályok
TextElement és a kapcsolódó osztályok lehetővé teszik a szöveg formázását. TextElement objektumok TextBlock és FlowDocument objektumokban tartalmaznak és formáznak szöveget. A TextElement objektumok két elsődleges típusa Block és Inline elem. A Block elem egy szövegblokkot jelöl, például egy bekezdést vagy egy listát. Egy Inline elem a szöveg egy részét jelöli egy blokkban. Számos Inline osztály határozza meg annak a szövegnek a formázását, amelyre alkalmazzák őket. Minden TextElement saját tartalommodellel rendelkezik. További információ: TextElement tartalommodell áttekintése.
Lásd még
.NET Desktop feedback