gpt4 book ai didi

c# - 有没有办法计算字体的真实高度?

转载 作者:行者123 更新时间:2023-11-30 18:13:00 24 4
gpt4 key购买 nike

我遇到过文本无法使用垂直居中正确对齐的情况。特别是当字体很大(即 40)时。我可以通过在顶部应用负边距来修复它,但是有没有办法以编程方式计算边距的数量?我尝试获取 FormattedText,但数字与屏幕上绘制的内容不匹配。

    <Border BorderBrush="Black" BorderThickness="1,1,1,1" Width="46" Height="46" UseLayoutRounding="True" SnapsToDevicePixels="True">
<TextBlock FontFamily="Gadugi" Margin="0,-4,0,0" FontSize="36" Text="1" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>

-4 修复了这种情况,但我如何明智地计算 -4 代码?因为它在每种字体/每种字体大小的基础上都不同。

数字似乎与 FormattedText 中的内容不匹配。

最佳答案

你可以尝试像这样使用几何变换:

FormattedText text = new FormattedText("Your text",
CultureInfo.CurrentCulture, FlowDirection.LeftToRight,
new Typeface("Arial"), 20, Brushes.Black);
Geometry geometry = text.BuildGeometry(new Point());
double height = geometry.Bounds.Bottom - geometry.Bounds.Top;

然而,这将导致您输入的字符串的高度。这意味着“abc”的高度比“ABC”短,而“ABC”比“Ay”短

关于c# - 有没有办法计算字体的真实高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53937512/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com