WPF - 在运行时更改全局字体大小

tom*_*omo 6 wpf xaml wpf-controls

我需要在我的简单应用程序中添加一个功能 - 允许用户更改整个应用程序的字体大小.这很容易吗?你能给我一些提示如何开始吗?它只需要3个预定义的字体大小,但我想到的第一个也是唯一的解决方案是创建3个不同的主题.有可能使它更简单吗?

Ric*_*key 13

幸运的是,FontSize使用Property Value Inheritance.这意味着只要不覆盖它,FontSize就会自动传播到所有子文本元素.因此,您可以设置一个:

<Window FontSize="10" ...>
Run Code Online (Sandbox Code Playgroud)

它将应用于该窗口中没有字体大小的所有文本元素.要在代码中更改它也很简单:

this.FontSize = 20;
Run Code Online (Sandbox Code Playgroud)

在窗口的代码隐藏中将动态更改所有未指定的字体大小.这也适用于似乎不支持字体大小的东西:

<Grid TextElement.FontSize="15" ...>
Run Code Online (Sandbox Code Playgroud)

您提到的其他文本属性也是如此.