Stílusok és testreszabhatóság a Silverlightban II.

Stílusok és testreszabhatóság a Silverlightban II.

Az előzőleg félbehagyott erőforrásokkal foglalkozunk, majd ha lesz még idő, akkor áttérnénk a stílusokra.

Az erőforrások használata:

Az erőforrást a következő kódrészlettel tudjuk definiálni:

<UserControl.Resources>

<SolidColorBrush x:Key=”bgColor” Color=”Blue” />

</UserControl.Resources>

A fenti UserControl-on belül ez az erőforrás minden objektum számára látható és elérhető. Hivatkozni az x:Key attribútum értékén keresztül lehet rá a StaticResource nyelvi kiterjesztés használatával. Szemléltessük ezt egy példán keresztül, hogy érthetőbb legyen:

 

<Objektum PropertyNev=”{StaticResource resourceKey}” />

<Grid Background=”{StaticResource bgColor}” >

….

<Grid/>

SolidColorBrush brush = this.Resources[“bgColor”] as SolidColorBrush;

A this kulcsszónak itt a UserConrol-ra kell vonatkoznia. A resources gyűjtemény értéke mindig object típusú, ezért van szükség a típuskonverzióra (as operátor). A key attribútum értékének egyedinek kell lennie. Ezt az erőforrás lekötést Expression Blend-ben is meg tudjuk valósítani az Advanced Property Options segítségével.

Az erőforrás fájlok:

Az alkalmazáshoz épített stílusok újrafelhasználhatósága előbb – utóbb fontos cél lesz. Ezekre a problémákra megoldás a ResourceDictonary. Ezt az objektumot egy külső XAML fájlban definiáljuk, és a felhasználás során meghivatkozzuk. Egy ilyen xaml fájlra nézzünk is egy példát:

Ezt az erőforrás – könyvtárat használó App.xaml tartalma az alábbi módon nézhet ki, amennyiben az xaml fájlunk neve ResourceDictionary1.xaml:

Application szintre emeltük be a ResourceDictionary1.xaml és a ResourceDictionary2.xaml tartalmát. Így a fenti bgColor erőforrás az alkalmazás tetszőleges pontján meghivatkozható. Ezek az XAML fájlok átvihetők más projektekbe is. A ResourceDictionary objektumok létrehozását és kezelését az Expression Blend is támogatja.

Következő alkalommal áttérünk a Stílusokra.

 

 

 

Leave a Reply