WPF usercontrol

Egyedi elemek-hez elég fájdalommentes, de bizonyos szempontból korlátozott módon létrehozásához speciális ellenőrzéseket. Ahhoz, hogy megértsük - miért, nézzük meg közelebbről, hogy milyen a UserControl.

„Backstage” a UserControl osztály működik, mint az osztály ContentControl, akitől örökölte. Tény, hogy a legfontosabb különbség egy pár:

Class UserControl változtatni néhány alapértéket. Nevezetesen meghatározza IsTabStop és fókuszálható hamis (tehát hogy ne foglaljon helyet a sorrendben kulcs nélkül ), És beállítja a HorizontalAligment és VerticalAligment a Stretch (ahelyett, hogy a bal és felső), ennek eredményeként kitöltik a rendelkezésre álló teret.

UserControl osztály használ egy új ellenőrzési minta, amely egy szegély elem, hogy a csomag ContentPresenter. ContentPresenter elem tartja a tartalmat, amely hozzáadódik a jelölést.

Class UserControl megváltoztatja a forrás irányítva eseményeket. Amikor egy eseményt elosztott vezikulum vagy bújtatott a vezérlőelem található a felhasználó elemet, az elem, amely kívül esik a forrás változik, és jelzi a felhasználó szabályozás helyett az eredeti elem. Ez egy kicsit nagyobb fokú tokozást.

Például az események feldolgozását a UIElement.MouseLeftButtonDown elrendezés konténer, amely tartalmaz egy mutatót egy korábban létrehozott szín, akkor kap egy eseményt, ha az egér gombra kattintva a négyszög belsejében. Ugyanakkor a forrása ez az esemény nem a téglalap és colorpicker tárgy tartalmazó téglalap. Ha létre ugyanolyan színű, mint a mutató egy közös elem a tartalmát, akkor ez nem lesz - ebben az esetben Ön köteles rögzíteni az eseményt a kontroll, folyamat és gerjeszti újra.

A leglényegesebb különbség az egyéni elemeket más típusú speciális ellenőrzések, ahogy a saját design. Mint minden ellenőrzés, egyedi elemek egy mintát. Azonban ez a minta nem változnak gyakran. Ehelyett egy jelölés részeként egy speciális osztálya felhasználói ellenőrzés, valamint a jelölő használatával kerül feldolgozásra InitializeComponent () metódus létrehozásakor az elem. Másrészt, a kontroll, mivel nincs megjelenés, és nincs jelölés. Minden, ami kell neki - egy sablon.

Semleges ContentControl a következő egyszerűsített minta:

Ez a sablon csak kitölti a fogadott tartalomhoz, és alkalmazza az opcionális tartalom sablont. Tulajdonságok, mint a kitöltés, Background HorizontalAligment VerticalAligment és nincs hatása, hacsak kifejezetten köti őket.

UserControl van egy hasonló mintát, de néhány extra apró örömök. A legnyilvánvalóbb az, hogy hozzáad egy elemet a határ és kötődik a tulajdonságait, hogy az ingatlan BorderBrush, BorderThickness, Háttér és kitöltés felhasználó ellenőrzése érdekében, hogy tegyen valamit. Ezen kívül ContentPresenter belsejében kötve szintező tulajdonságok.

Formálisan, az egyéni ellenőrző sablon lehet változtatni. Tény, hogy tudja mozgatni az egész jelölő a sablon, csak kissé módosítja azt. De valójában nincs szükség, hogy ezt: ha szüksége van a rugalmasabb szabályozás, amely elkülönül a megjelenése a felület által biztosított az osztály az elem, akkor jobb, hogy hozzon létre egy egyéni vezérlő, amely nem tartalmaz a megjelenése, ahogy az a következő cikket.

Kapcsolódó cikkek