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 ,都没用,求解!
<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,大部分控件的字体都受影响了的主要内容,如果未能解决你的问题,请参考以下文章
wpf 怎么实现 窗口和窗口之间的传值?页面和页面之间?窗口和页面之间?