TOC

This article is currently in the process of being translated into Czech (~73% done).

Styly:

Úvod do stylů WPF

Pokud pocházíte ze světa vývoje webových aplikací, a pracujete s HTML a CSS, rychle pochopíte, že XAML je velmi podobný HTML: Strukturální rozložení aplikace definujete pomocí značek. Můžete dokonce vytvořit své vlastní prvky vypadající určitým způsobem, pomocí vestavěných vlastností, jako jsou Foreground, FontSize a tak dále, a stejně tak můžete místně měnit styl pomocí značek HTML.

Ale co se stane, když chcete použít přesně stejnou velikost písma a barvu na třech různých ovládacích prvcích TextBlock? Můžete zkopírovat / vložit požadované vlastnosti pro každý z nich, ale co se stane, když tři ovládací prvky se změní na 50 ovládacích prvků, rozprostřené přes několik oken? A co se stane, když si uvědomíte, že velikost písma by měla být 14 místo 12?

WPF zavádí styling, což je v XAML to, co CSS v HTML. Pomocí stylů můžete seskupit sadu vlastností a přiřadit je ke konkrétním ovládacím prvkům nebo všem ovládacím prvkům určitého typu stejně, jako v CSS může dědit styl z jiného stylu.

Jednoduchý, základní příklad

Jistě, o všech podrobnostech budeme hovořit mnohem více, ale pro tuto úvodní kapitolu, vám chci ukázat velmi jednoduchý příklad, který používá styling:

<Window x:Class="WpfTutorialSamples.Styles.SimpleStyleSample"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="SimpleStyleSample" Height="200" Width="250">
    <StackPanel Margin="10">
        <StackPanel.Resources>
            <Style TargetType="TextBlock">
                <Setter Property="Foreground" Value="Gray" />
                <Setter Property="FontSize" Value="24" />
            </Style>
        </StackPanel.Resources>
        <TextBlock>Header 1</TextBlock>
        <TextBlock>Header 2</TextBlock>
        <TextBlock Foreground="Blue">Header 3</TextBlock>
    </StackPanel>
</Window>

Pro zdroje mého StackPanelu si vytvořím styl. Používám vlastnost TargetType, který WPF říká, že tento styl by měl být aplikován na všechny ovládací prvky TextBlock v daném rámci (StackPanel), a pak přidám do stylu dva Setter prvky. Prvky Setter se používají k nastavení specifických vlastností pro cílové ovládací prvky, v tomto případě Vlastnosti Foreground a FontSize. Vlastnost Property říká WPF, na které vlastnosti chceme cílit a vlastnost Value definuje jejich požadovanou hodnotu.

Notice that the last TextBlock is blue instead of gray. I did that to show you that while a control might get styling from a designated style, you are completely free to override this locally on the control - values defined directly on the control will always take precedence over style values.

Summary

WPF styles make it very easy to create a specific look and then use it for several controls, and while this first example was very local, I will show you how to create global styles in the next chapters.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!