编程语言
首页 > 编程语言> > c# – 在DrawText中设置VerticalAlignment

c# – 在DrawText中设置VerticalAlignment

作者:互联网

我正在使用DrawText在Visual Layer上绘制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);

这是最终结果:

我希望文本的中间位于圆圈的中心.

解决方法:

好吧好像我能够解决这个问题.这并不难.我会在这里发布答案以供将来参考.它也可以帮助其他人.

因为看起来没有像FormattedText那样的VerticalAlignment,所以我们需要自己计算和定位它.因为我们可以获得格式化文本的Height属性.我们可以轻松地将文本对齐如下:

dc.DrawText(ft, new Point(centerpoint.X, centerpoint.Y- ft.Height/2));

标签:c,vertical-alignment,wpf,drawtext
来源: https://codeday.me/bug/20190528/1174379.html