我有一个带有乘法子系统的项目。并为每个子系统创建了一个项目。
我在这个项目中使用MVVMLight。
我为主项目设置了资源并为其设置了字体大小。
我想在运行时更改ui font-size。
当我使用此代码时,它只更改字体大小的主窗口,但我想更改所有子窗口的字体大小。
Application.Current.MainWindow.FontSize = 12;
答案 0 :(得分:0)
而不是设置新的fontsize我在我的项目中使用ScaleTransform也许它也是一种方式
<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>
答案 1 :(得分:0)
虽然FontSize
属性是由子控件继承的,但在Window
上设置它并让所有子控件继承该值可能会很棘手。如果任何子控件已显式设置自己的FontSize
属性值,那么它将“覆盖”在父级上设置的任何属性值。
我不知道如何在应用程序中设置所有 FontSize
的{{1}},但可以设置{运行时应用程序中所有打开 Window
的{1}}:
FontSize
此外,如果您想在特定类型的开放Window
上设置属性,则可以执行此操作:
foreach (Window window in Application.Current.Windows) window.FontSize = 12;