Как лучше всего рисовать текст вместе с геометрией? - PullRequest
20 голосов
/ 24 июня 2009

В WPF я начинаю использовать такие классы, как LineGeometry, EllipseGeometry, GeometryGroup, Path ... для рисования 2D-графики. Я выбрал их поверх форм, потому что видел, что это может быть быстрее благодаря функции замораживания.

Мне нужно нарисовать текст вместе с геометрией, с определенными шрифтами. Текст должен быть позиционирован с той же системой координат, что и геометрия. И мне нужно иметь возможность применить преобразование, такое как RotateTransform.

Какой будет лучший путь? Я наткнулся на класс GlyphRunDrawing, но он действительно сложный.

Заранее большое спасибо.

1 Ответ

32 голосов
/ 24 июня 2009

Для создания геометрии текста просто используйте FormattedText.BuildGeometry, например, чтобы получить геометрию «Текст для отображения» с шрифтом Tahoma размером 16 пикселей в точке (5,5), используйте:

    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

...