Windows Presentation Foundation

Styly

Styly představují další možnost nastavení vlastností na objektech. Používají se nejčastěji, kdy změny vlastností budou aplikovatelné i na dalších objektech. Tedy tyto změny budou znovu použitelné. Styly se také dají použít pro zlepšení čitelnosti kódu. Místo přímé editace vlastnosti pomocí atributu. Hodnota vlastnosti je změněna pomocí stylu. V elementu tak budou nastaveny jen některé atributy nezahrnuté v tomto stylu.

Vytvoření stylu pro určitý typ
<Style TargetType="ListBoxItem">
      <Setter Property="Background" Value="LightGray"/>
      <Setter Property="FontWeight" Value="Bold"/>
</Style>
Style – slouží k vytvoření stylu (objektu stylu)
TargetType – typ (element) na jaký bude tento styl aplikován
Setter – nastaví hodnotu vlastnosti určené pomocí atributu Property
Property – název vlastnosti objektu (ListBoxItem)
Value – nová hodnota pro vlastnost (Property)
ListBoxItem – tvoří položku v ListBox
ListBox – vytvoří list položek, které je možné vybrat (třeba menu)
V tomto případě se aplikuje styl pouze na položky v ListBox. Nastaví jim barvu pozadí na LightGray (světle šedou). Dále nastaví váhu písma (tloušťku) na Bold (tučné).

V ukázce je vytvořen styl v StackPanel.Resources. Tento zdroj nepotřebuje nastavit hodnotu pro x:Key atribut. Zde bude automaticky nastavena hodnota na {x:Type ListBoxItem}. Pokud bude x:Key nastaven na jinou hodnotu, styl se neaplikuje na všechny elementy ListBoxItem. Ale aplikuje se pouze na ty s přiřazeným stylem pomocí {StaticResources}.

Vytvoření stylu s x:Key atributem
<Style x:Key="vlastniStylTlacitka" TargetType="Button">
      <Setter Property="Background" Value="White"/>
</Style>
Zde je styl pojmenován pomocí x:Key atributu. Nebude tedy aplikován na všechny Button elementy.
Použití stylu na element Button
<Button Style="{StaticResource vlastniStylTlacitka}">Přidat
Pomocí atributu Style a StaticResource se přidá styl vlastniStylTlacitka. Na Obrázku 9 je zobrazeno, jak bude tlačítko vypadat po aplikování stylu.
Použití stylu na tlačítko
Obrázek 9 Použití stylu na tlačítko [zdroj: vlastní]
Ukázkové řešení: XAML/Styly
9