在运行时更改应用程序字体大小

时间:2013-12-04 07:20:37

标签: wpf mvvm styles mvvm-light font-size

我有一个带有乘法子系统的项目。并为每个子系统创建了一个项目。

我在这个项目中使用MVVMLight。

我为主项目设置了资源并为其设置了字体大小。

我想在运行时更改ui font-size。

当我使用此代码时,它只更改字体大小的主窗口,但我想更改所有子窗口的字体大小。

Application.Current.MainWindow.FontSize = 12;

2 个答案:

答案 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;