Compartilhar 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 visuais consistentes com o Windows.

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 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 SystemFonts no código, você não precisa usar um valor estático ou uma referência de 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 controladas 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 SystemParameters classe para fazer referência a 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 SystemParameters no código, você não precisa usar referências estáticas ou referências de recursos dinâmicos. Em vez disso, use os valores da SystemParameters classe. Embora as propriedades não chave sejam aparentemente definidas como propriedades estáticas, o comportamento em tempo de execução do WPF conforme hospedado pelo sistema reavaliará as propriedades em tempo real e levará em conta adequadamente as alterações controladas 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âmetro do sistema podem ser usadas como recursos estáticos ou dinâmicos. Use um recurso dinâmico se quiser que a métrica do 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âmetro 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