Ответ 1
Этот стиль будет применяться только к элементам управления типа ContentControl, он не будет применяться к типам, которые выводятся из ContentControl (т.е. кнопки, окна и т.д.). Вот как работают неявные стили.
Если вы поместите этот стиль в свой Application.Resources, он будет применяться к каждому ContentControl в вашем приложении, независимо от того, в каком окне находится элемент управления. Если вы определяете это в Resouces определенного окна, применяется только к ContentControls в этом окне.
Свойство TextOptions.TextFormattingMode наследуется, что означает, что вам нужно только установить его в верхней части визуального дерева. Итак, что-то вроде этого должно работать, если оно помещено в Application.Resources:
<Style TargetType="{x:Type Window}">
<Setter Property="TextOptions.TextFormattingMode" Value="Display"></Setter>
</Style>
ИЗМЕНИТЬ:
Или вы можете применить это ко всем Windows, даже производным типам, переопределив значение по умолчанию так:
using System.Windows;
using System.Windows.Media;
namespace MyProject
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application {
static App() {
TextOptions.TextFormattingModeProperty.OverrideMetadata(typeof(Window),
new FrameworkPropertyMetadata(TextFormattingMode.Display, FrameworkPropertyMetadataOptions.AffectsMeasure | FrameworkPropertyMetadataOptions.AffectsRender | FrameworkPropertyMetadataOptions.Inherits));
}
}
}