与几何一起绘制文本的最佳方法是什么?

时间:2009-06-24 04:01:56

标签: wpf text geometry draw

在WPF中,我开始使用LineGeometry,EllipseGeometry,GeometryGroup,Path等类来绘制2D图形。我选择了这些形状,因为我看到它可以更快,因为冻结功能。

我需要使用特定字体绘制文本和几何图形。文本需要使用与几何相同的坐标系来定位。我需要能够应用转换,如RotateTransform。

最好的方法是什么?我遇到了GlyphRunDrawing类,但它真的很复杂。

提前多多感谢。

1 个答案:

答案 0 :(得分:32)

要创建文本几何体,只需使用FormattedText.BuildGeometry,例如,在字体Tahoma中获得“Text to display”的几何体,在点(5,5)处使用16个像素:

    FormattedText text = new FormattedText("Text to display",
        CultureInfo.CurrentCulture,
        FlowDirection.LeftToRight,
        new Typeface("Tahoma"),
        16,
        Brushes.Black);
    Geometry geometry = text.BuildGeometry(new Point(5, 5));

如果您需要在XAML中执行此操作,可以将此代码包装在MarkupExtention