java全局字体_WPF全局字体大小

回答(9)

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

要使用ctrl-mousewheel全局动态更改字体大小:

XAML:

代码背后:

private void MainWindow_PreviewMouseWheel(object sender, MouseWheelEventArgs e)

{

if ((Keyboard.Modifiers & ModifierKeys.Control) != 0)

{

if (e.Delta > 0)

++mainCtrl.FontSize;

if (e.Delta < 0 && mainCtrl.FontSize > 1)

--mainCtrl.FontSize;

}

}

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

我这样做:

这样,如果我想要更改所有控件,我只需要更改“baseStyle”样式,其余的只是继承它 . (那就是那些基于AnyOn属性的东西,如果你在继承的样式中创建其他setter,你也可以扩展基本样式)

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

有一个属性FontSize .

因此,如果要更改该窗口中所有元素的fontsize,可以在元素中设置所需的fontsize .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

如果您需要以编程方式更改全局FontSize,而不是静态(XAML),要对所有窗口应用一次,您可以执行以下操作:

TextElement.FontSizeProperty.OverrideMetadata(

typeof(TextElement),

new FrameworkPropertyMetadata(16.0));

TextBlock.FontSizeProperty.OverrideMetadata(

typeof(TextBlock),

new FrameworkPropertyMetadata(16.0));

此值适用于任何TextBlock,Labels和几乎任何窗口中的任何文本,而它没有定义明确的FontSize . 但是这对TextBox没有影响,你必须为它或任何其他特殊控件编写类似的代码 .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

Application.Current.MainWindow.FontSize = _appBodyFontSize;

这样您也可以在运行时更改字体大小 .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

对于WPF中的任何样式,您应该有一个单独的资源字典,其中包含应用程序的样式 .

如果您想要在整个应用程序中重复使用单个字体大小,那么只需为该字体大小创建一个样式 . 您可以为其指定唯一的名称/密钥以明确使用,也可以设置将在整个应用程序中超越的targetType .

明确的关键:

TargetType="TextBlock">

Property="FontSize"

Value="10" />

Style="{StaticResource MyFontSize}" />

*请注意,此样式可以与包含contentPresenters的控件一起使用

对于应用中的所有文本块:

Property="FontSize"

Value="10" />

Text="This text will be size 10" />

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

TextElement.FontSize 是一个继承属性,这意味着您只需在根元素处设置字体大小,并且所有子元素都将使用该大小(只要您不手动更改它们)

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

FontSizeProperty继承自Parent Control . 所以你只需要更改主窗口的FontSize .

如果您不需要动态行为,这应该工作:

将Window的样式添加到ResourceDictionary

将样式应用于主窗体(不会隐式应用,因为它是派生类型)

Style = (Style)FindResource(typeof (Window));

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

另一种选择是将FontFamily和FontSize定义为资源 .

Calibri

12

这样你就可以在你的二传手中使用它们 .

你可能感兴趣的:(java全局字体)