gpt4 book ai didi

wpf - 设置全局字体系列

转载 作者:行者123 更新时间:2023-12-04 05:57:39 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




10年前关闭。




Possible Duplicate:
How to set the default font for a wpf application?



来自 web 开发背景,我经常对如何为我的控件分配样式感到困惑。我想做的是为整个应用程序设置一个全局字体系列。

在我的 App.xaml文件我有以下
    <Style TargetType="{x:Type Window}">
<Setter Property="FontFamily" Value="Helvetica, Arial" />
<Setter Property="FontSize" Value="13" />
</Style>

我尝试将目标类型更改为 Control但这无济于事。我希望如此,因为从技术上讲,一切都存在于 Window 中。控制一切都按预期工作。

结果是 TextBlock控制不继承自 Control .我假设这是大部分问题,因为我 90% 的文本都在 TextBlock 中。形式。

在 CSS 中,我会做这样的事情:
body {
font-family: Helvetica, Arial;
font-size: 13px;
}

最佳答案

我之前所做的是为控件创建一个样式,然后从中派生出其他控件样式。无论出于何种原因,WPF 都不想直接从 Control 样式中获取 FontFamily 设置,但是如果它从基于 Control 的 Button Style 中获取它,那么它就可以工作。如果以后有时间,我会四处寻找并找到以前的实现。

编辑:
不记得我可能在哪里放了一个现成的例子,所以我做了一个:

<Style x:Key="ControlStyle" TargetType="Control">
<Setter Property="FontFamily" Value="Wingdings"/>
</Style>
<Style TargetType="Button" BasedOn="{StaticResource ControlStyle}"/>

另外,请记住,TextBlock 的样式不能基于 Control。 Textblock 派生自 Framework 元素,而不是 Control。标签、复选框、文本框等从 Control 派生,而 Control 派生自 Framework Element。

您可能需要为 Textblock 设置单独的样式。您可以做的一件事是设置字体系列资源并将您的顶级样式绑定(bind)到该资源。然后,如果它改变了,你所要做的就是改变那个实例。
<FontFamily x:Key="DefaultFont" >Ravie</FontFamily>

<Setter Property="FontFamily" Value="{DynamicResource DefaultFont}"/>

关于wpf - 设置全局字体系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6615672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com