Если вы хотите установить его один раз и оставить его, просто добавьте стиль в свой App.xaml внутри тега <ResourceDictionary>
:
<ResourceDictionary>
...
<Style TargetType="{x:Type Window}">
<Setter Property="TextOptions.RenderingMode" Value="ClearType">
</Style>
...
</ResourceDictionary>
Если вы действительно хотите изменить его с течением времени, вы можете привязать его к главному окну:
<ResourceDictionary>
...
<Style TargetType="{x:Type Window}">
<Setter Property="TextOptions.RenderingMode" Value="{Binding MainWindow.(TextOptions.RenderingMode), Source="{x:Static Application.Current}">
</Style>
...
</ResourceDictionary>
и убедитесь, что вы установили его в главном окне явно, чтобы избежать самостоятельной ссылки:
<Window TextOptions.RenderingMode="ClearType" ...>
Теперь любые динамические изменения в TextOptions.RenderingMode главного окна также будут влиять на все остальные окна. Но простой фиксированный стиль лучше всего подходит для большинства целей.
Существуют и другие решения для его динамического связывания, если вам все равно, что оно будет управляться значением главного окна, например, вы можете использовать {DynamicResource ...}
в своем стиле или привязать к свойству статического объекта.
Обновление
Простое добавление стиля для Window в ваш App.xaml не работает, если вы используете подклассы Window вместо простых объектов Window.
Чтобы разрешить определенный вами стиль для всех подклассов Window, добавьте следующий вызов OverrideMetadata в конструктор вашего приложения (обычно в App.xaml.cs) после InitializeComponent ():
public App()
{
InitializeComponent();
FrameworkElement.StyleProperty.OverrideMetadata(typeof(Window), new FrameworkPropertyMetadata
{
DefaultValue = FindResource(typeof(Window))
});
}