Sdílet prostřednictvím


Jak používat prostředky aplikace (WPF .NET)

Tento příklad ukazuje, jak používat prostředky definované aplikací. Prostředky lze definovat na úrovni aplikace, obecně prostřednictvím souboru App.xaml nebo Application.xaml , podle toho, který projekt používá. Prostředky definované aplikací jsou globálně vymezeny a přístupné ze všech částí aplikace.

Příklad

Následující příklad ukazuje definiční soubor aplikace. Definiční soubor aplikace definuje oddíl prostředku (hodnotu vlastnosti Resources ). K prostředkům definovaným na úrovni aplikace můžou přistupovat všechny ostatní stránky, které jsou součástí aplikace. V tomto případě je prostředek deklarovaný styl. Vzhledem k tomu, že úplný styl, který obsahuje šablonu ovládacího prvku, může být zdlouhavý, tento příklad vynechá šablonu ovládacího prvku definovanou v rámci ContentTemplate vlastnosti setter stylu.

<Application.Resources>
    <Style TargetType="Border" x:Key="FancyBorder">
        <Setter Property="Background" Value="#4E1A3D" />
        <Setter Property="BorderThickness" Value="5" />
        <Setter Property="BorderBrush">
            <Setter.Value>
                <LinearGradientBrush>
                    <GradientStop Offset="0.0" Color="#4E1A3D"/>
                    <GradientStop Offset="1.0" Color="Salmon"/>
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>
    </Style>
</Application.Resources>

Následující příklad ukazuje stránku XAML, která odkazuje na prostředek na úrovni aplikace z předchozího příkladu. Na prostředek se odkazuje rozšířením značek StaticResource, které určuje jedinečný klíč prostředku pro daný prostředek. Prostředek "FancyBorder" není v oboru aktuálního objektu a okna nalezen, takže vyhledávání prostředku pokračuje nad aktuální stránkou a prostředky na úrovni aplikace.

<Border Style="{StaticResource FancyBorder}">
    <StackPanel Margin="5">
        <Button>Button 1</Button>
        <Button>Button 2</Button>
        <Button>Button 3</Button>
        <Button>Button 4</Button>
    </StackPanel>
</Border>

Viz také