在窗口中定义时如何更改文本框的字体族



我在应用程序范围内为文本框定义FontFamily时遇到了问题,因为我的字体系列是在窗口级别定义的,样式为:

<Style TargetType="Window" >
    <Setter Property="FontFamily" Value="Lucida Sans Unicode"/>
    <Setter Property="FontSize" Value="10pt"/>
</Style>

我用这种方式为我的文本框定义了字体系列:

<Style TargetType="{x:Type TextBox}">
    <Setter Property="FontFamily" Value="Arial"/>
    <Setter Property="FontSize" Value="10pt"/>
</Style>

但是,我的TextBox样式没有应用,并且文本框中的文本仍然是Lucida,而不是Arial。我该怎么做?有类似css的吗!XAML样式中的重要等价项是否覆盖上一个?

我注意到我非常欣赏在ResourceDictionaries上执行它的XAML方式。

感谢回答

这对我很有用。我定义了两种样式,一种用于窗口,一种专门用于文本框。特殊风格获胜,结果为Arial 30磅。如果我评论特殊样式,则窗口样式应用于textBox,并显示漫画sans20pt。

参见代码:

<Window x:Class="WpfApplication3.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:WpfApplication3"
        Title="MainWindow" Height="350" Width="525">
  <Grid>
    <TextBox Text="Hello!"/>
  </Grid>
</Window>

应用程序资源:

<Application x:Class="WpfApplication3.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
    <Style TargetType="Window" >
      <Setter Property="FontFamily" Value="Comic Sans MS"/>
      <Setter Property="FontSize" Value="20pt"/>
    </Style>
    <Style TargetType="{x:Type TextBox}">
      <Setter Property="FontFamily" Value="Arial"/>
      <Setter Property="FontSize" Value="30pt"/>
    </Style>
  </Application.Resources>
</Application>

相关内容

  • 没有找到相关文章

最新更新