Практическое руководство. Использование 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)
См. также
.NET Desktop feedback