Как установить стандартный шрифт для приложения WPF?

Я хочу смочь определить семейство шрифтов для своего приложения WPF. Предпочтительно с помощью словаря ресурса в качестве темы, от которой ссылаются App.xaml. Я попытался создать a Style следующим образом:

<Style TargetType="{x:Type Control}">
    <Setter Property="FontFamily" Value="Segoe UI" />            
</Style>

Но это не работает. Установка типа к TextBlock работы для большинства средств управления, но существуют несколько средств управления, где это не применяется.

Я знаю, что можно установить шрифт на окне и иметь все дочерние элементы управления того окна, наследовали шрифт. Но я думаю, что любые диалоговые окна вернутся к стандартному шрифту, который не является точно, что я хочу.

Какие-либо идеи?

70
задан Danny Beckett 30 August 2014 в 18:31
поделиться

1 ответ

Предполагая, что ваши подклассы Window не переопределяют DefaultStyleKey , вы можете просто добавить его в свой стиль окна, поскольку TextElement.FontFamilyProperty является унаследованным свойством:

<Style TargetType="{x:Type Window}"> 
    <Setter Property="FontFamily" Value="Segoe UI" />             
</Style> 

Вам также необходимо добавить следующее в конструктор приложения после вызова InitializeComponent :

FrameworkElement.StyleProperty.OverrideMetadata(typeof(Window), new FrameworkPropertyMetadata
{
    DefaultValue = FindResource(typeof(Window))
});

Как это работает: после завершения инициализации объекта App задан стиль окна в нем делается стиль по умолчанию для всех окон.

56
ответ дан 24 November 2019 в 13:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: