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
.NET Desktop feedback