如何:使用 SystemFonts

此示例演示如何使用 SystemFonts 类的静态资源设置按钮样式或自定义按钮。

示例

系统资源将系统确定的许多值以资源和属性的形式公开,以帮助创建与系统设置一致的视觉效果。 SystemFonts 类既包含作为静态属性的系统字体值,又包含引用可用于在运行时动态访问这些值的资源键的属性。 例如,CaptionFontFamily 是一个 SystemFonts 值,而 CaptionFontFamilyKey 是相应的资源键。

在 XAML 中,可以使用 SystemFonts 的成员作为静态属性或动态资源引用(静态属性值为资源键)。 如果希望字体规格在应用程序运行时自动更新,请使用动态资源引用;否则,请使用静态值引用。

注意

资源键属性名称后面附有“Key”后缀。

以下示例演示如何访问并使用 SystemFonts 的属性作为静态值来设置按钮样式或自定义按钮。 此标记示例将 SystemFonts 值分配给按钮。

<Button Margin="10, 10, 5, 5" Grid.Column="0" Grid.Row="3"      
     FontSize="{x:Static SystemFonts.IconFontSize}"
     FontWeight="{x:Static SystemFonts.MessageFontWeight}"
     FontFamily="{x:Static SystemFonts.CaptionFontFamily}">
     SystemFonts
</Button>

若要在代码中使用 SystemFonts 的值,不一定要使用静态值或动态资源引用。 而是可以使用 SystemFonts 类的非键属性。 尽管非键属性已明确定义为静态属性,但是系统托管的 WPF 的运行时行为将会实时重新评估这些属性,并且会适当考虑对系统值进行用户驱动的更改。 以下示例演示如何指定按钮的字体设置。

Button btncsharp = new Button();
btncsharp.Content = "SystemFonts";
btncsharp.Background = SystemColors.ControlDarkDarkBrush;
btncsharp.FontSize = SystemFonts.IconFontSize;
btncsharp.FontWeight = SystemFonts.MessageFontWeight;
btncsharp.FontFamily = SystemFonts.CaptionFontFamily;
cv1.Children.Add(btncsharp);
Dim btn As New Button()
btn.Content = "SystemFonts"
btn.Background = SystemColors.ControlDarkDarkBrush
btn.FontSize = SystemFonts.IconFontSize
btn.FontWeight = SystemFonts.MessageFontWeight
btn.FontFamily = SystemFonts.CaptionFontFamily
cv1.Children.Add(btn)

另请参阅