Použití systémových prostředků (WPF .NET)

Tento příklad ukazuje použití systémově definovaných prostředků. Systémové prostředky poskytuje WPF a umožňuje přístup k prostředkům operačního systému, jako jsou písma, barvy a ikony. Systémové prostředky zpřístupňují několik systémově definovaných hodnot jako prostředky i vlastnosti, které vám pomůžou vytvářet vizuály, které jsou konzistentní s Windows.

Důležité

Dokumentace k desktopové příručce pro .NET 7 a .NET 6 se právě připravuje.

Písma

SystemFonts Pomocí třídy můžete odkazovat na písma používaná operačním systémem. Tato třída obsahuje hodnoty systémových písem jako statické vlastnosti a vlastnosti, které odkazují na klíče prostředků, které lze použít k dynamickému přístupu k těmto hodnotám za běhu. Je to například CaptionFontFamilySystemFonts hodnota a CaptionFontFamilyKey je to odpovídající klíč prostředku.

Následující příklad ukazuje, jak přistupovat k statickým hodnotám a používat je SystemFonts jako statické hodnoty pro styl nebo přizpůsobení bloku textu:

<TextBlock FontSize="{x:Static SystemFonts.SmallCaptionFontSize}"
           FontWeight="{x:Static SystemFonts.SmallCaptionFontWeight}"
           FontFamily="{x:Static SystemFonts.SmallCaptionFontFamily}"
           Text="Small Caption Font">
</TextBlock>

Pokud chcete použít hodnoty SystemFonts v kódu, nemusíte používat statickou hodnotu ani dynamický odkaz na prostředky. Místo toho použijte neklíčové vlastnosti SystemFonts třídy. I když se vlastnosti, které nejsou klíči, zřejmě definují jako statické vlastnosti, chování WPF za běhu hostované systémem znovu zhodnotí vlastnosti v reálném čase a bude správně zohledňovat změny systémových hodnot řízené uživatelem. Následující příklad ukazuje, jak zadat nastavení písma tlačítka:

var myButton = new Button()
{
    Content = "SystemFonts",
    Background = SystemColors.ControlDarkDarkBrush,
    FontSize = SystemFonts.IconFontSize,
    FontWeight = SystemFonts.MessageFontWeight,
    FontFamily = SystemFonts.CaptionFontFamily
};

mainStackPanel.Children.Add(myButton);
Dim myButton = New Button() With
{
    .Content = "SystemFonts",
    .Background = SystemColors.ControlDarkDarkBrush,
    .FontSize = SystemFonts.IconFontSize,
    .FontWeight = SystemFonts.MessageFontWeight,
    .FontFamily = SystemFonts.CaptionFontFamily
}

mainStackPanel.Children.Add(myButton)

Dynamická písma v XAML

Systémové metriky písma je možné použít jako statické nebo dynamické prostředky. Pokud chcete, aby se metrika písma automaticky aktualizovala při spuštění aplikace, použijte dynamický prostředek. v opačném případě použijte statický prostředek.

Poznámka:

Dynamické prostředky mají klíčové slovo Key připojené k názvu vlastnosti.

Následující příklad ukazuje, jak získat přístup k dynamickým prostředkům systémového písma nebo ho použít k úpravě stylu nebo přizpůsobení bloku textu:

<TextBlock FontSize="{DynamicResource {x:Static SystemFonts.SmallCaptionFontSize}}"
           FontWeight="{DynamicResource {x:Static SystemFonts.SmallCaptionFontWeight}}"
           FontFamily="{DynamicResource {x:Static SystemFonts.SmallCaptionFontFamily}}"
           Text="Small Caption Font">
</TextBlock>

Parametry

SystemParameters Pomocí třídy můžete odkazovat na vlastnosti na úrovni systému, jako je například velikost primárního zobrazení. Tato třída obsahuje vlastnosti hodnoty systémového parametru a klíče prostředků, které se sváže s hodnotami. Jedná se například FullPrimaryScreenHeight o SystemParameters hodnotu vlastnosti a FullPrimaryScreenHeightKey je to odpovídající klíč prostředku.

Následující příklad ukazuje, jak získat přístup ke statickým hodnotám SystemParameters stylu nebo přizpůsobení tlačítka a použít je. Tento příklad revizí velikost tlačítka použitím SystemParameters hodnot na tlačítko:

<Button FontSize="8" 
        Height="{x:Static SystemParameters.CaptionHeight}"
        Width="{x:Static SystemParameters.IconGridWidth}"
        Content="System Parameters">
</Button>

Pokud chcete použít hodnoty SystemParameters v kódu, nemusíte používat statické odkazy ani dynamické odkazy na prostředky. Místo toho použijte hodnoty SystemParameters třídy. I když jsou vlastnosti bez klíče zřejmě definovány jako statické vlastnosti, chování WPF za běhu hostované systémem znovu zhodnotí vlastnosti v reálném čase a bude správně zohledňovat změny systémových hodnot řízené uživatelem. Následující příklad ukazuje, jak nastavit šířku a výšku tlačítka pomocí SystemParameters hodnot:

var myButton = new Button()
{
    Content = "SystemParameters",
    FontSize = 8,
    Background = SystemColors.ControlDarkDarkBrush,
    Height = SystemParameters.CaptionHeight,
    Width = SystemParameters.CaptionWidth,
};

mainStackPanel.Children.Add(myButton);
Dim myButton = New Button() With
{
    .Content = "SystemParameters",
    .FontSize = 8,
    .Background = SystemColors.ControlDarkDarkBrush,
    .Height = SystemParameters.CaptionHeight,
    .Width = SystemParameters.CaptionWidth
}

mainStackPanel.Children.Add(myButton)

Dynamické parametry v XAML

Metriky systémových parametrů je možné použít jako statické nebo dynamické prostředky. Dynamický prostředek použijte, pokud chcete, aby se metrika parametru automaticky aktualizovala při spuštění aplikace; v opačném případě použijte statický prostředek.

Poznámka:

Dynamické prostředky mají klíčové slovo Key připojené k názvu vlastnosti.

Následující příklad ukazuje, jak přistupovat k dynamickým prostředkům systémového parametru a používat je k přizpůsobení nebo stylu tlačítka. Tento příklad XAML vytvoří velikost tlačítka přiřazením SystemParameters hodnot k šířce a výšce tlačítka.

<Button FontSize="8" 
        Height="{DynamicResource {x:Static SystemParameters.CaptionHeightKey}}"
        Width="{DynamicResource {x:Static SystemParameters.IconGridWidthKey}}"
        Content="System Parameters">
</Button>

Viz také