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();
}
Спасибо!