<ListView x:Name="lstProductionOrders">
<ListView.View>
<GridView>
<GridViewColumn Header="Production Order:"/>
...
我在网格上设置了字体大小,使用textelement,我已经在listview,columnheader,样式,使用BasedOn的样式上设置了它。我甚至放入了一个全新的测试窗口,其中没有其他代码,但默认代码和listview以相同的方式创建。使用上述所有内容,字体在设计时更改,但在运行时没有。
我只有大约6个月的WPF / XAML经验,所以我可能正在寻找错误的东西。是否有某种全局设置的fontsize或任何人都可以想到的任何东西会导致这被覆盖。
对于记录,我在测试窗口中没有基类。
---------- ---------- EDIT
这是App中问题的根源。 XAML
<Style TargetType="TextBlock">
<Setter Property="FontFamily" Value="Times New Roman"/>
<Setter Property="FontSize" Value="20"/>
</Style>
答案 0 :(得分:6)
这听起来很像你有一个GridViewColumn的隐式样式,它会覆盖你在本地所做的更改。
在设计时,不考虑隐式样式(可能由于各种原因),但在运行时它是,并且你得到了那种奇怪的行为。
我首先查看App.xaml的参考资料部分,然后向上移动直到达到我关心的控件。
添加:隐式样式:
<UserControl>
<UserControl.Resources>
<Style TargetType="TextBlock">
<Setter Property="FontSize" Value="40" /> <!-- stupid value, just to make it obvious it changed something =) -->
</Style>
</UserControl.Resources>
</UserControl>
如果您想在本地定义隐式样式而不覆盖链上方的另一个隐式样式集,则可以执行以下操作:
<UserControl>
<UserControl.Resources>
<Style TargetType="TextBlock" BasedOn="{StaticResource {x:Type TextBlock}}">
<Setter Property="FontSize" Value="60" /> <!-- ridiculous value, just to make it obvious it changed something =) -->
</Style>
</UserControl.Resources>
</UserControl>
它将继承隐式样式并为本地UserControl添加更改。
答案 1 :(得分:4)
对我来说,以下内容适用于标题和项目:
<ListView ItemsSource="{Binding Source={StaticResource Items}}"
TextElement.FontSize="16">
<!-- ... -->
不知道你的情况会出现什么问题......
答案 2 :(得分:1)
如果您只想设置标题大小,请尝试此解决方案 或者使用@ H.B.溶液
<ListView x:Name="lstProductionOrders" >
<ListView.View>
<GridView>
<GridViewColumn>
<GridViewColumnHeader TextElement.FontSize="16">Production Order:/GridViewColumnHeader>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
希望这会有所帮助