Как повернуть текст в Win2D с помощью сеанса рисования CanvasControl?

Я разрабатываю приложение UWP с использованием Win2D, и мне нужно повернуть текст с помощью сеанса рисования CanvasControl. Я использовал public void DrawText(string text, Vector2 point, Color color) для визуализации текста.

Как я могу повернуть текст под любым углом?


person Deepak Ganesan    schedule 02.09.2020    source источник


Ответы (1)


В Win2D вращение текста может быть достигнуто установкой CanvasDrawingSession.Transform.

private void CanvasControl_Draw(CanvasControl sender, CanvasDrawEventArgs args)
{
    CanvasDrawingSession ds = args.DrawingSession;
    ds.Transform = Matrix3x2.CreateRotation(GetRadians(30));
    ds.DrawText("Hello Win2D!", 10, 10, Colors.Red);
}

private float GetRadians(double angle)
{
    return (float)(Math.PI * angle / 180.0);
}

Стоит отметить, что параметр Matrix3x2.CreateRotation выражается в радианах. Если вы любите выражать угол, вам нужно преобразовать.

Вращение здесь сосредоточено в верхнем левом углу холста, если вам нужно настроить центр вращения, вы можете написать так:

ds.Transform = Matrix3x2.CreateRotation(GetRadians(30),new Vector2(30,30));
person Richard Zhang - MSFT    schedule 02.09.2020
comment
Большое спасибо за ваше решение. Работает нормально :) - person Deepak Ganesan; 03.09.2020
comment
Не могли бы вы мне в этом помочь? stackoverflow.com/questions/67996686/ - person Deepak Ganesan; 16.06.2021