Wpf 在运行时更改应用程序字体大小
我有一个多子系统的项目。并为每个子系统创建了一个项目 我在这个项目中使用MVVMLight 我为主项目设置了一个资源,并为它设置了字体大小 我想在运行时更改ui字体大小 当我使用此代码时,它只更改主窗口的字体大小,但我想更改所有子窗口的字体大小Wpf 在运行时更改应用程序字体大小,wpf,mvvm,styles,mvvm-light,font-size,Wpf,Mvvm,Styles,Mvvm Light,Font Size,我有一个多子系统的项目。并为每个子系统创建了一个项目 我在这个项目中使用MVVMLight 我为主项目设置了一个资源,并为它设置了字体大小 我想在运行时更改ui字体大小 当我使用此代码时,它只更改主窗口的字体大小,但我想更改所有子窗口的字体大小 Application.Current.MainWindow.FontSize = 12; 我在项目中使用ScaleTransform,而不是设置一个新的fontsize,也许这也是一种适合您的方法 <Window> <Grid&g
Application.Current.MainWindow.FontSize = 12;
我在项目中使用ScaleTransform,而不是设置一个新的fontsize,也许这也是一种适合您的方法
<Window>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<Border Grid.Row="0">
<Border.LayoutTransform>
<ScaleTransform ScaleX="{Binding ElementName=zoomer, Path=Value}" ScaleY="{Binding ElementName=zoomer, Path=Value}"></ScaleTransform>
</Border.LayoutTransform>
<!-- content here -->
</Border>
<Slider Grid.Row="1" x:Name="zoomer" Width="100" Focusable="False" Value="1"
Minimum="1" Maximum="2.2" TickFrequency="0.1" IsSnapToTickEnabled="True"/>
</Grid>
</Window>
虽然子控件继承了
FontSize
属性,但在窗口中设置该属性并让所有子控件继承该值可能会比较困难。如果任何子控件已显式设置其自己的FontSize
属性值,则该属性值将“覆盖”在父控件上设置的任何属性值
我不知道如何设置应用程序中所有窗口的FontSize
,但您可以在运行时设置应用程序中所有打开的窗口的FontSize
:
foreach (Window window in Application.Current.Windows) window.FontSize = 12;
此外,如果要仅在打开的窗口
上设置特定类型的属性,则可以执行以下操作:
foreach (Window window in Application.Current.Windows.OfType<DialogWindow>())
window.FontSize = 12;
foreach(Application.Current.Windows.OfType()中的窗口)
window.FontSize=12;
谢谢,但我有一个在应用程序中使用的multiply项目,我想在一个特殊项目中用一个按钮更改所有项目的字体大小。然后在应用程序设置中保存“new”fontsize并绑定到它是的,我可以为打开的窗口设置字体大小,但是有没有解决方案可以为ui设置字体大小,当打开新窗口时,设置字体大小。你用什么方法打开一个新的窗口
?我用窗口.Show()那你为什么不直接调用window.FontSize=12代码>首先?谢谢,但我在另一个项目中设置了字体大小,打开窗口是另一个项目,我不保存字体大小。