如果我将字体系列从“Segoe UI”更改为“Arial”(或其他内容),为什么使用当前版本的WPF(.NET 4.5.2)时,以下小循环(在c#中)表现如此糟糕? .tried“Times New Roman”和“Courier New” - 同样的问题)?
var tb = new TextBlock {Text = "Testtext", FontFamily = new FontFamily("Arial")};
for(int i = 0; i < 100000; i++)
{
tb.InvalidateMeasure();
tb.Measure(new Size(double.MaxValue, double.MaxValue));
}
将font-family设置为Arial时,我的机器上的代码块大约需要7.6秒。设置为“Segoe UI”的字体系列大约需要1.9秒。为什么除了Segoe UI之外的其他字体在测量过程中表现如此糟糕?是否有任何调整,这确实避免了这种巨大的性能损失?
编辑:正如我发现的那样,“Tahoma”,“Lucida Sans”和“Microsoft Sans Serif”的测量速度也非常快。这是一些“系统内部字体”吗?