wpf - 如何在 wpf 中计算 FormattedText 或 GlyphRun 的 'Size

在 WPF4 中,我如何为 drawingvisual 计算 FormattedTextGlyphRun'Size'

我在 Canvas 中使用绘图视觉。当我更改文本大小或文本时,会发生更改,但实际宽度和高度相同或未更新。

Using dc As DrawingContext = drawingvisual.RenderOpen                    

                Dim ft As New FormattedText(...)

                dc.DrawText(ft, New Point(0, 0))

                dc.Close()

End Using

最佳答案

初始化 FormattedText 后,它的 Width 和 Height 成员等于给定参数的实际渲染大小。事实上,更改参数会立即更新它们,例如:

FormattedText ft = new FormattedText(cellString, CultureInfo.CurrentCulture, FlowDirection.LeftToRight, fontFace, fontSize, fontBrush);
ft.Trimming = TextTrimming.CharacterEllipsis;
double originalHeight = ft.Height;
double width = ft.Width;
ft.MaxTextWidth = bCellRect.Width;    // Set the width to get a new height
double height = ft.Height;

为 GlyphRun 编辑:当您创建 GlyphRun 时,您已经为每个字符指定了预先宽度,因此您添加了这些宽度。要获取高度,请使用 GlyphTypeface.Baseline * FontSize

关于wpf - 如何在 wpf 中计算 FormattedText 或 GlyphRun 的 'Size'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6717199/

相关文章:

java - 如何将日期格式化为大写?

text - 如何在 SublimeText 3 中添加具有固定长度和预定义数字的前导零

objective-c - 你如何调整 Xcode 的 Objective C 参数的自动缩进?

ruby - 在 ERB 模板中转义换行符/行尾

wpf - 格式化 WPF Listview 列以仅显示 2 个小数点。

sql - 计算组百分比到小数点后 2 位 - SQL

c# - 在 RichTextBox 中格式化单词

excel - 如何将 Excel 2010 中的条件格式复制到基于其他单元格内容的其他单元格?

javascript - 基于 JavaScript/jQuery 中的格式字符串格式化数字

python - 使用 Python 格式化 Excel 中的单元格