Как установить шрифт по умолчанию для TextBox
?TextBox установить шрифт по умолчанию
Для TextBlock
это (взято из here):
TextBlock.FontFamilyProperty.OverrideMetadata(typeof(TextBlock),
new FrameworkPropertyMetadata(new FontFamily("Verdana")));
Попытка сделать то же самое для TextBox
:
TextBox.FontFamilyProperty.OverrideMetadata(typeof(TextBox),
new FrameworkPropertyMetadata(new FontFamily("Verdana")));
выбросит:
Исключение брошено: «System. Windows.Markup.XamlParseException 'в PresentationFramework.dll
Дополнительная информация: Инициализатор типа для 'System.Windows.Controls.TextBox' выдал исключение. PropertyMetadata уже зарегистрирован для типа TextBox.
Вот репродукция:
<StackPanel>
<TextBlock Text="123123" />
<TextBox Text="123123" BorderThickness="0" Padding="-2,0,-2,0" />
</StackPanel>
Установка TextBlock
шрифта, как описано выше в окне конструктора (до InitializeComponent()
) работает. Как установить TextBox
шрифт по умолчанию (по умолчанию это Segoe)? Мне нужно решение, чтобы установить его как "Verdana"
в одном месте для целого приложения.
Intellisense показывает:
Вызов OverrideMetadata для типа рамки (например, TextBlock) в любом случае сомнительна. Вы должны установить значения по умолчанию с помощью стилей. – Clemens
Я попытался установить 'TextElement', он ничего не работает. Установка «TextBlock» работает, но только для «TextBlock». – Sinatr
Вы пробовали 'OverrideMetadata (Type, PropertyMetadata, DependencyPropertyKey)' версию с 'DependencyPropertyKey' – bars222