2010-06-23 59 views
2

当WPF应用程序启动时,它会应用一些标准设置来确定文本和数字的外观。有没有办法让我以编程方式更改这些默认设置?如何更改WPF中的排版默认值?

例如,FontNumeralAlignment documentation on MSDN指出值“Normal”意味着“使用默认数字对齐”。在我的系统上,这似乎默认为FontNumeralAlignment.Proportional,我希望它改为FontNumeralAlignment.Tabular。

背景:在Windows 7(see bug report on Microsoft Connect)上,WPF 4.0 OpenType支持被破坏,并且不可能在仅包含数字和标点符号的运行中更改数字对齐方式。如果我至少可以将应用程序的默认设置更改为表格,则可以采用一种解决方法。

回答

1

我还没有尝试过它,但也许重写默认的DependencyProperty元数据将是一个解决方案?

像这样的东西应该工作:

public static class Overrides 
{ 
    static Overrides() 
    { 
     Typography.NumeralAlignmentProperty.OverrideMetadata(typeof(Typography), new System.Windows.PropertyMetadata(FontNumeralAlignment.Tabular)); 
    } 
}