Share via


Como usar recursos do sistema (WPF .NET)

Este exemplo demonstra como usar recursos definidos pelo sistema. Os recursos do sistema são fornecidos pelo WPF e permitem o acesso aos recursos do sistema operacional, como fontes, cores e ícones. Os recursos do sistema expõem vários valores definidos pelo sistema como recursos e propriedades para ajudá-lo a criar elementos visuais consistentes com o Windows.

Importante

A documentação do Guia da Área de Trabalho para .NET 7 e .NET 6 está em construção.

Fontes

Use a SystemFonts classe para fazer referência às fontes usadas pelo sistema operacional. Essa classe contém valores de fonte do sistema como propriedades estáticas e propriedades que fazem referência a chaves de recurso que podem ser usadas para acessar esses valores dinamicamente em tempo de execução. Por exemplo, CaptionFontFamily é um SystemFonts valor e CaptionFontFamilyKey é uma chave de recurso correspondente.

O exemplo a seguir mostra como acessar e usar as propriedades de como valores estáticos para estilizar ou personalizar um bloco de SystemFonts texto:

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

Para usar os valores de no código, você não precisa usar um valor estático ou uma referência de SystemFonts recurso dinâmico. Em vez disso, use as propriedades não-chave da SystemFonts classe. Embora as propriedades não-chave sejam aparentemente definidas como propriedades estáticas, o comportamento em tempo de execução do WPF hospedado pelo sistema reavaliará as propriedades em tempo real e levará em conta adequadamente as alterações orientadas pelo usuário nos valores do sistema. O exemplo a seguir mostra como especificar as configurações de fonte de um botão:

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)

Fontes dinâmicas em XAML

As métricas de fonte do sistema podem ser usadas como recursos estáticos ou dinâmicos. Use um recurso dinâmico se quiser que a métrica de fonte seja atualizada automaticamente enquanto o aplicativo é executado; caso contrário, use um recurso estático.

Observação

Os recursos dinâmicos têm a palavra-chave Key anexada ao nome da propriedade.

O exemplo a seguir mostra como acessar e usar recursos dinâmicos de fonte do sistema para estilizar ou personalizar um bloco de texto:

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

Parâmetros

Use a classe para fazer referência a SystemParameters propriedades no nível do sistema, como o tamanho da exibição primária. Essa classe contém propriedades de valor de parâmetro do sistema e chaves de recurso que se associam aos valores. Por exemplo, FullPrimaryScreenHeight é um valor de SystemParameters propriedade e FullPrimaryScreenHeightKey é a chave de recurso correspondente.

O exemplo a seguir mostra como acessar e usar os valores estáticos de SystemParameters para estilizar ou personalizar um botão. Este exemplo de marcação dimensiona um botão aplicando SystemParameters valores a um botão:

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

Para usar os valores de no código, você não precisa usar referências estáticas ou referências de SystemParameters recursos dinâmicos. Em vez disso, use os SystemParameters valores da classe. Embora as propriedades não-chave sejam aparentemente definidas como propriedades estáticas, o comportamento em tempo de execução do WPF como hospedado pelo sistema reavaliará as propriedades em tempo real e levará em conta corretamente as alterações orientadas pelo usuário nos valores do sistema. O exemplo a seguir mostra como definir a largura e a altura de um botão usando SystemParameters valores:

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)

Parâmetros dinâmicos em XAML

As métricas de parâmetros do sistema podem ser usadas como recursos estáticos ou dinâmicos. Use um recurso dinâmico se desejar que a métrica de parâmetro seja atualizada automaticamente enquanto o aplicativo é executado; caso contrário, use um recurso estático.

Observação

Os recursos dinâmicos têm a palavra-chave Key anexada ao nome da propriedade.

O exemplo a seguir mostra como acessar e usar recursos dinâmicos de parâmetros do sistema para estilizar ou personalizar um botão. Este exemplo de XAML dimensiona um botão atribuindo SystemParameters valores à largura e altura do botão.

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

Confira também