中的翼形字符我试图在控件中使用Wingdings符号作为图形,并试图使其在文本框(UWP应用程序)中垂直居中。在它周围放置一个可见的边框,并且该符号不是垂直居中的事实是显而易见的,并且毁了我要去的东西。如果可能的话,它可以使我不必进行自定义艺术创作,而且由于Wingdings可以调整大小,因此我的图形可以轻松地重新调整大小。这就是为什么我不想手动调整高度,直到它看起来居中。如何垂直居中文本块xaml/C#/ UWP
大多数Wingdings不是垂直居中,但有时用作图形,所以我想知道如果这是可行的W /合理的努力。一个光滑的xaml方式来做到这一点是理想的,但字体度量测量,然后文本块高度调整粘性将是很好的。
这是一个问题的例子。硬盘驱动器符号不在边界中垂直居中。
<Border BorderBrush="Black" BorderThickness="10" Background="White" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Text=";" FontFamily="Wingdings" FontSize="230"/>
</Border>
编辑 - 改变例子来简化房间和使用宋体硬盘符号,因为颅骨骨骼&足够接近垂直居中混淆的问题。驱动符号非常明显不是垂直居中。即使字体大小发生变化,我的目标也是自动垂直居中。我可以看到XAML可能无法做到这一点,但我想知道是否有一些字体/文本指标查询存在,我可以用它来做到这一点。
EDIT 2 - 添加图片(从上面XAML具有相同的问题,因为所有建议的XAML(S):
感谢Sunteen,你的第一个答案似乎缺少一个VerticalAlignment =“中心”,但既不1,2或3是垂直居中的字符。因为它不是垂直对称的,我选择了一个头骨和骨头的坏例子。如果将字符更改为“µ”,并测量顶部和底部边界之间的像素到符号,您会发现它不是以上述任何建议中的垂直居中。我不认为font-char是垂直居中的。举一个极端的例子来看看“;”,它绝对不是垂直居中。有没有一种字体/文字指标的方式来做到这一点? – br0therDave
@ br0therDave我测试过“µ”,这三种方法都可以使它居中。如果您仍然遇到问题,请提供您的应用目标版本和测试环境。并提供您通过上面的代码获得的屏幕截图。 –
我给这个问题添加了一张图片。您可以看到wingdings符号的中心不在文本块的垂直中心。关于如何让符号垂直居中的任何想法? – br0therDave