有没有办法以编程方式更改字体大小?
<Window.Resources>
<Style TargetType="{x:Type Button}">
<Setter Property="FontFamily" Value="Arial Narrow"/>
<Setter Property="FontSize" Value="14"/>
</Style>
<Style TargetType="{x:Type Label}">
<Setter Property="FontFamily" Value="Arial Narrow"/>
<Setter Property="FontSize" Value="14"/>
</Style>
</Window.Resources>
在这种情况下,我想让客户能够将字体大小从14改为另一种字体大小。
答案 0 :(得分:1)
例如,客户正在通过文本框输入更改标签的字体大小。
//XAML
<Grid>
<TextBox x:Name="box1" HorizontalAlignment="Left" Height="23" Margin="90,192,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
<Label x:Name="label1" Content="This is a label" HorizontalAlignment="Left" Margin="90,98,0,0" VerticalAlignment="Top" Width="120"/>
<Button x:Name="btn1" Content="Enter" HorizontalAlignment="Left" Margin="106,258,0,0" VerticalAlignment="Top" Width="75" Click="btn1_Click"/>
</Grid>
//Programmatically changing font
private void btn1_Click(object sender, RoutedEventArgs e)
{
label1.FontSize = int.Parse(box1.Text);
}
答案 1 :(得分:-1)
我这样做。
<Window.Resources>
<Style TargetType="{x:Type Control}" x:Key="baseStyle">
<Setter Property="FontSize" Value="100" />
</Style>
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource baseStyle}"></Style>
<Style TargetType="{x:Type Label}" BasedOn="{StaticResource baseStyle}"></Style>
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource baseStyle}"></Style>
<Style TargetType="{x:Type ListView}" BasedOn="{StaticResource baseStyle}"></Style>
<!-- ComboBox, RadioButton, CheckBox, etc... -->
</Window.Resources>
这样,如果我想更改所有控件,我只需要更改&#34; baseStyle&#34;风格,其余的只会继承它。 (那就是那些基于NonOn属性的属性,如果你在继承的样式中创建其他setter,你也可以扩展基本样式)你可以使用不同的不同样式。
您可以像这样以编程方式执行
private void Button_Click(object sender, RoutedEventArgs e)
{
uiLabel.FontWeight = FontWeights.Bold;
uiLabel.FontStyle = FontStyles.Italic;
uiLabel.FontSize = 16;
}