首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何设置WPF应用程序的默认字体?

如何设置WPF应用程序的默认字体?
EN

Stack Overflow用户
提问于 2010-06-30 07:29:41
回答 5查看 96.1K关注 0票数 82

我希望能够为我的WPF应用程序定义字体系列。优选地,使用资源字典作为从App.xaml引用的主题。我尝试创建了一个Style,如下所示:

代码语言:javascript
复制
<Style TargetType="{x:Type Control}">
    <Setter Property="FontFamily" Value="Segoe UI" />            
</Style>

但这不管用。将类型设置为TextBlock适用于大多数控件,但也有少数控件不适用。

我知道您可以在窗口上设置字体,并让该窗口的所有子控件继承该字体。但我认为任何对话框窗口都会回到默认字体,这并不是我想要的。

有什么想法吗?

EN

回答 5

Stack Overflow用户

发布于 2010-06-30 08:41:43

假设您的Window子类没有覆盖DefaultStyleKey,您可以简单地将其添加到您的窗口样式中,因为TextElement.FontFamilyProperty是一个继承的属性:

代码语言:javascript
复制
<Style TargetType="{x:Type Window}"> 
    <Setter Property="FontFamily" Value="Segoe UI" />             
</Style> 

InitializeComponent调用之后,您还需要将以下内容添加到您的应用构造函数中:

代码语言:javascript
复制
FrameworkElement.StyleProperty.OverrideMetadata(typeof(Window), new FrameworkPropertyMetadata
{
    DefaultValue = FindResource(typeof(Window))
});

工作原理: App对象初始化完成后,其中指定的窗口样式将成为所有窗口的默认样式。

票数 62
EN

Stack Overflow用户

发布于 2014-11-19 23:46:04

大多数提出的解决方案对我来说都不起作用。我的简单解决方案是:

将此代码添加到App.xaml:

代码语言:javascript
复制
<Style TargetType="{x:Type Window}">
    <Setter Property="FontSize"
            Value="14" />
</Style>

将此代码添加到您的MainWindow构造函数中(在InitializeComponent之后):

代码语言:javascript
复制
Style = (Style)FindResource(typeof(Window));
票数 29
EN

Stack Overflow用户

发布于 2014-10-08 01:06:32

一种简单的编程方法是:

代码语言:javascript
复制
public MainWindow()
{
    this.FontFamily = new FontFamily("Segoe UI");
}
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3145511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档