我在应用程序范围内为文本框定义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>