Partilhar 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.

Fontes

Use a classe SystemFonts 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 recursos que podem ser usadas para acessar esses valores dinamicamente em tempo de execução. Por exemplo, CaptionFontFamily é um valor SystemFonts e CaptionFontFamilyKey é uma chave de recurso correspondente.

O exemplo a seguir mostra como acessar e usar as propriedades de SystemFonts como valores estáticos para estilizar ou personalizar um bloco de 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, não é necessário usar um valor estático ou uma referência de recurso dinâmico. Em vez disso, use as propriedades não-chave da classe SystemFonts. 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 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 SystemParameters 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 ligam aos valores. Por exemplo, FullPrimaryScreenHeight é um valor de propriedade SystemParameters 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 valores SystemParameters 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, não é necessário usar referências estáticas ou referências de recursos dinâmicos. Em vez disso, use os valores da classe SystemParameters. 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 adequadamente 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 valores SystemParameters:

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 valores SystemParameters à 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>

Ver também