Member 13106948 Ответов: 0

Поворот строкового значения в canvas с помощью WPF icanvas


Я отображаю строку с помощью метода DrawString () в интерфейсе ICanvas. Я реализовал метод DrawString (), как показано ниже

void ICanvas.DrawString(
            string str,
            float x,
            float y,
            float width,
            float height,
            HorizontalAlignment horizontalAlignment,
            VerticalAlignment verticalAlignment)
        {
            var ctf = _state._font._ctf;
            ctf.HorizontalAlignment = TMP_ConvAlignH(horizontalAlignment);
            ctf.VerticalAlignment   = TMP_ConvAlignV(verticalAlignment);
            using (var layout = new CanvasTextLayout(_control, str, ctf, width, height))
            {
                layout.SetUnderline(0,str.Length,_state._font.FontUnderline);
                layout.Options = CanvasDrawTextOptions.Clip;
                _session.DrawTextLayout(layout, x, y, _state._fontColor);
            }
        }


Мне нужно повернуть струну на определенный угол. Пожалуйста, дайте мне решение?

Что я уже пробовал:

Я попытался повернуть с помощью
Matrix3x2.CreateRotation((float)-angcur - 1.570796f) * // rotate -ang-Pi/2
                    Matrix3x2.CreateTranslation(
                    (float)this.RotationCenterX + (heights[i] + tradius) * (float)Math.Cos(angcur),
                    (float)this.RotationCenterY - (heights[i] + tradius) * (float)Math.Sin(angcur));
                path.AddText(text.Substring(i, 1), font, 23, 23, m32);
перед вызовом метода DrawString ().

0 Ответов