Wpf Width, ActualWidth и RenderSize один и тот же результат

У меня возникают проблемы при попытке получить фактическую ширину преобразованного (повернутого) элемента в WPF. У меня есть прямоугольник с изображением на холсте. Когда я поворачиваю прямоугольник, я хотел бы получить ширину рендеринга, чтобы центрировать его в моем окне, но я всегда получаю базовую ширину, независимо от того, как я пытаюсь.

Я пытался использовать Width, ActualWidth, RenderSize. Width: точно такой же результат. Я пытался использовать LayoutTransform и RenderTransform, то же самое.

Я действительно не понимаю, что делаю неправильно, все, что я прочитал об этой теме, говорит о том, что я должен получить визуализированную ширину всей ограничительной рамки, используя ActualWidth, а не ширину по умолчанию для моего прямоугольника / изображения.

Вот мой код:

Настройка scaleTransform:

    private ScaleTransform scaleT = new ScaleTransform();
    private RotateTransform rotateT = new RotateTransform();
    private TransformGroup tGroup = new TransformGroup();

    //Adding renderTransform
        scaleT.ScaleX = 1;
        scaleT.ScaleY = 1;
        rotateT.Angle = 0;
        tGroup.Children.Add(rotateT);
        tGroup.Children.Add(scaleT);
        imageContainer.RenderTransform = tGroup;

И вращение:

private void rotateWindow(string direction)
    {

        double prevWidth = this.Width;
        double prevHeight = this.Height;
        this.Width = prevHeight;
        this.Height = prevWidth;

        imageContainer.RenderTransformOrigin = new Point(0.5, 0.5);
        if (direction == "Right")
        {
            rotateT.Angle += 30;
        }
        if (direction == "Left")
        {
            rotateT.Angle -= 30;
        }

        adaptWindowToGrid();
    }

Спасибо!

0 ответов

Другие вопросы по тегам