我使用DrawText
在可视层上绘制FormattedText
。现在我使用下面的代码来定义格式化文本,并且能够将TextAlignment
设置为Center
。但是VerticalAlignment
呢?如图所示,文本中心下方不在中心点上,该中心点在此处显示为一个红点。
我定义FormattedText
的部分:
var ft = new FormattedText("A",
CultureInfo.GetCultureInfo("en-us"),
FlowDirection.LeftToRight,
new Typeface("Verdana"),
36, Brushes.Yellow);
ft.TextAlignment = TextAlignment.Center;
我画文本的部分:
var centerpoint = new Point(0,0);
dc.DrawText(ft, centerpoint);
以下是最终结果:
我希望文本的中间位于圆的中心。
最佳答案
好吧,看来我能解决这个问题。没那么难。我会把答案贴在这里以备将来参考。它也可能帮助其他人。
似乎不存在一个VerticalAlignment
的东西,所以我们需要自己计算和定位它。因为我们可以得到格式化文本的FormattedText
属性。我们可以像这样轻松地对齐文本:
dc.DrawText(ft, new Point(centerpoint.X, centerpoint.Y- ft.Height/2));