1,创建资源字典
首先,在你的 WPF 项目中创建一个资源字典文件,比如 Styles.xaml。
csharp
<!-- Styles.xaml -->
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- 定义全局字体大小 -->
<x:Double x:Key="GlobalFontSize">14</x:Double>
<!-- 创建全局文本样式 -->
<Style TargetType="TextBlock">
<Setter Property="FontSize" Value="{StaticResource GlobalFontSize}"/>
</Style>
<Style TargetType="Button">
<Setter Property="FontSize" Value="{StaticResource GlobalFontSize}"/>
</Style>
<Style TargetType="Label">
<Setter Property="FontSize" Value="{StaticResource GlobalFontSize}"/>
</Style>
<!-- 可以根据需要添加更多控件的样式 -->
</ResourceDictionary>
- 在 App.xaml 中引入资源字典
接下来,在你的 App.xaml 中引入这个资源字典,以确保它在整个应用程序中可用。
csharp
<Application x:Class="YourNamespace.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
- 使用全局字体大小
在你的窗口或页面中,你可以使用 TextBlock、Button、Label 等控件,这些控件会自动应用你定义的全局字体大小。例如:
csharp
<Window x:Class="YourNamespace.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<StackPanel>
<TextBlock Text="Hello, World!" />
<Button Content="Click Me" />
<Label Content="This is a label." />
</StackPanel>
</Window>
- 动态修改全局字体大小
如果你想在运行时动态修改全局字体大小,可以通过代码进行更改:
csharp
// 在 MainWindow.xaml.cs 中
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void ChangeFontSize(double newSize)
{
// 更新资源字典中的全局字体大小
Application.Current.Resources["GlobalFontSize"] = newSize;
}
// 可以在某个事件中调用 ChangeFontSize,例如按钮点击事件
}