wpf 在app.xaml 中设定了全局的textblock fontsize,大部分控件的字体都受影响了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf 在app.xaml 中设定了全局的textblock fontsize,大部分控件的字体都受影响了相关的知识,希望对你有一定的参考价值。

<Style TargetType="x:Type TextBlock">
<Setter Property="Margin" Value="2"/>
<Setter Property="FontSize" Value="15"/>
</Style>

项目中的DatePicker控件字体也受影响了,为DatePicker控件指定style ,都没用,求解!

参考技术A 添加一个key就行了:
<Style x:Key="CustomTextBlock" TargetType="x:Type TextBlock">
<Setter Property="Margin" Value="2"/>
<Setter Property="FontSize" Value="15"/>
</Style>
使用时指定Key,未指定的就不会有影响了:
<TextBlock Style="StaticResource CustomTextBlock"/>
希望对你有帮助,还有疑问请追问或是Hi追问

这样是没问题,但是项目中太多TextBlock , 每个都加上Style, 太麻烦了,有没有办法让DatePicker 在有Style的情况下也能改变字体

追答

给DatePicker写个Style不行吗?

追问

试了, 不行呢。

追答

试了一下,重写DatePicker应该更麻烦一些,不仅如此,还得重写Calendar,还不如就对TextBlock指定Key了,总之我觉得你使用全局的TextBlock这个用法有问题,因为会影响其它的很多控件

参考技术B 在每个窗体或者page的xaml文件中添加:
<Window.Resources>
<Style TargetType="x:Type TextBlock">
<Setter Property="Margin" Value="2"/>
<Setter Property="FontSize" Value="15"/>
</Style>
</Window.Resources>
不知道是什么原因,单独再每个xaml的window.resource中设置样式,其他控件不受影响。
但在app.xmal中设置textblock样式,所有其他控件都改变了。

有知道原理的告知下。

WPF全局异常捕获

跟着《WPF专业编程开发指南》这书打的代码的,自己在正式项目中测试通过,可以抓取到全局的异常,用的log4net来记录日志

核心代码:

写在App.xaml.cs中

 

    /// <summary>
    /// App.xaml 的交互逻辑
    /// </summary>
    public partial class App : Application
    {
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);
            this.DispatcherUnhandledException += new System.Windows.Threading.DispatcherUnhandledExceptionEventHandler(App_DispatcherUnhandledException);
        }

        void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) {
            Common.Log.Error($"抓到未知异常:",e.Exception);
        }
    }

 

技术图片

以上是关于wpf 在app.xaml 中设定了全局的textblock fontsize,大部分控件的字体都受影响了的主要内容,如果未能解决你的问题,请参考以下文章

Window 的 WPF 全局样式

WPF XAML 为项目设置全局样式

WPF全局异常捕获

wpf 怎么实现 窗口和窗口之间的传值?页面和页面之间?窗口和页面之间?

如果启动窗口位于不同的项目/库中,如何在 App.xaml 中设置 StartupUri?

2021-08-08 WPF控件专题 WPF应用程序组成