【问题标题】:How to rotate text in Win2D using CanvasControl drawing session?如何使用 CanvasControl 绘图会话在 Win2D 中旋转文本?
【发布时间】:2020-09-02 09:57:22
【问题描述】:

我正在使用 Win2D 开发 UWP 应用程序,我需要使用 CanvasControl 绘图会话来旋转文本。我使用public void DrawText(string text, Vector2 point, Color color) 来渲染文本。

如何将文本旋转到任意角度?

【问题讨论】:

    标签: windows uwp win2d


    【解决方案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));
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多