我需要改变整个应用程序的所有文本的字体大小。
我试着做了以下几件事,但这并不奏效:
<Style x:Key="fontsize" TargetType="{x:Type FrameworkElement}">
<Setter Property="Control.FontSize" Value="20"/>
</Style>
<Style TargetType="{x:Type FrameworkElement}" BasedOn="{StaticResource fontsize}"/>
当我尝试如下设置时,效果很好,但不能应用于所有元素&需要将其应用于所有不同类型的元素。
<Style TargetType="TextBlock" BasedOn="{StaticResource fontsize}"/>
<Style TargetType="TextBox" BasedOn="{StaticResource fontsize}"/>
<Style TargetType="DataGridCell" BasedOn="{StaticResource fontsize}"/>
<Style TargetType="MenuItem" BasedOn="{StaticResource fontsize}"/>
<Style TargetType="DatePicker" BasedOn="{StaticResource fontsize}"/>
我还想问,有没有一种方法,我可以覆盖全局样式为一个特定的元素,如标题文本应该是不同的大小对用户控制?
3条答案
按热度按时间xqk2d5yq1#
在App.xaml中
jdg4fx2g2#
在App.xaml中为窗口创建全局样式。
并为所需的窗口设置该样式。
用于重写用户控件的样式
rjjhvcjd3#
这涉及两个控件。你可能在想“嘿,这个手机或那个日历怎么样”。它们的模板在文本块中显示文本。当你在菜单项上设置标题或者在标签上设置内容时,你会得到一个生成的文本块。
因此,您“只”需要在textblock和textbox上设置样式:
话虽如此。
”Clemons指出。
字体大小和样式依赖属性被标记为继承,所以如果你只有mainwindow,那么你可以只设置它。
当你设置内容的时候,一个标签最后会有一个文本块,这并不是“显而易见的”。类似的还有menuitem和header。因此,我认为值得发布这个答案。