Wpf 文本旋转

Wpf text rotation

我想在 canvas 上添加一些文本,并决定为此使用 textBlock(设置字体等) 但我不知道如何旋转它。 我使用以下函数在 myCanvas 上添加 myText:

void text(double x_pos, double y_pos, string myText, double angle, Point rot_cen, Color color1)
        {
            TextBlock textBlock = new TextBlock()
            {
                Text = myText,
                FontFamily = new FontFamily("Verdana"),
                FontSize = 16,
                TextAlignment = TextAlignment.Center
            };
            textBlock.Foreground = new SolidColorBrush(color1);
            Canvas.SetLeft(textBlock, x_pos);
            Canvas.SetTop(textBlock, y_pos);

            textBlock.RenderTransform = new RotateTransform(angle, rot_cen.X, rot_cen.Y);

            myCanvas.Children.Add(textBlock);
        }

根据我的阅读,rot_cen 是从 (0,0)(左上角)到 (1,1)(右下角)的点。但是当我将它设置为 (0.5,0.5) 时,它仍然围绕左上角旋转。我需要以某种方式更新它吗?

RotateTransform 的 CenterXCenterY 属性使用绝对坐标。

您可能要设置RenderTransformOrigin,它使用相对坐标:

textBlock.RenderTransformOrigin = rot_cen;
textBlock.RenderTransform = new RotateTransform(angle);