【发布时间】:2017-04-30 09:53:44
【问题描述】:
我正在尝试将 Wingdings 符号用作控件中的图形,并尝试使其在文本框(UWP 应用程序)中垂直居中。我在它周围放置了一个可见的边界,并且该符号是不垂直居中很明显,破坏了我的目标。如果可能的话,它可以让我不必做定制艺术,而且由于 Wingdings 可以调整大小,我的图形可以很容易地重新调整大小。这就是为什么我不想手动调整高度直到它看起来居中。
大多数 Wingdings 不是垂直居中的,但有时用作图形,所以我想知道这是否可以通过合理的努力实现。一种巧妙的 xaml 方法是理想的,但字体度量测量然后文本块高度调整大头钉会很好。
这是一个问题的例子。硬盘驱动器符号不在边框中垂直居中。
<Border BorderBrush="Black" BorderThickness="10" Background="White" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Text=";" FontFamily="Wingdings" FontSize="230"/>
</Border>
编辑 - 将示例更改为整理并使用 Wingdings 硬盘驱动器符号,因为头骨和骨头足够接近垂直居中以混淆问题。驱动器符号很明显不是垂直居中的。我的目标是在字体大小发生变化时自动垂直居中。我可以看到 XAML 可能无法做到这一点,但我想知道是否存在一些我可以使用的字体/文本指标查询。
编辑 2 - 添加图片(来自上面的 XAML,与所有建议的 XAML 具有相同的问题:
【问题讨论】: