Я хочу смочь определить семейство шрифтов для своего приложения WPF. Предпочтительно с помощью словаря ресурса в качестве темы, от которой ссылаются App.xaml
. Я попытался создать a Style
следующим образом:
<Style TargetType="{x:Type Control}">
<Setter Property="FontFamily" Value="Segoe UI" />
</Style>
Но это не работает. Установка типа к TextBlock
работы для большинства средств управления, но существуют несколько средств управления, где это не применяется.
Я знаю, что можно установить шрифт на окне и иметь все дочерние элементы управления того окна, наследовали шрифт. Но я думаю, что любые диалоговые окна вернутся к стандартному шрифту, который не является точно, что я хочу.
Какие-либо идеи?
Предполагая, что ваши подклассы 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 задан стиль окна в нем делается стиль по умолчанию для всех окон.