我想要旋转源的图像组件:
<Image Name="ImageTarget" HorizontalAlignment="Left" VerticalAlignment="Top" Stretch="Uniform" RenderTransformOrigin=".5,.5">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="{Binding Main.BindedViewMode, Converter={StaticResource ImageSizeConverter}}" />
<ScaleTransform ScaleY="{Binding Main.BindedViewMode, Converter={StaticResource ImageSizeConverter}}" />
<RotateTransform Angle="-90" />
</TransformGroup>
</Image.RenderTransform>
</Image>
我从代码中设置了ImageTarget
的来源。
在转换之前(RenderTransformOrigin和RotateTransform)我的窗口就像:
但轮换后:
因此,正如您所看到的,宽度和高度已经改变。
所以我的问题是:
由于
编辑:尺寸没有改变,我采用了不同尺寸的两个截图,stackoverflow自动调整尺寸。
答案 0 :(得分:2)
问题是在布局传递后应用了变换。在计算布局之前,您应该使用LayoutTransform
执行转换:
<Image Name="ImageTarget" HorizontalAlignment="Left" VerticalAlignment="Top" Stretch="Uniform" RenderTransformOrigin=".5,.5">
<Image.LayoutTransform>
<TransformGroup>
<ScaleTransform ScaleX="{Binding Main.BindedViewMode, Converter={StaticResource ImageSizeConverter}}" />
<ScaleTransform ScaleY="{Binding Main.BindedViewMode, Converter={StaticResource ImageSizeConverter}}" />
<RotateTransform Angle="-90" />
</TransformGroup>
</Image.LayoutTransform>
答案 1 :(得分:-1)
我建议您使用CompositeTransform
代替RotateTransform
和ScaleTransform
。然后,您可以在Rotate
标记内调用TranslateX
和TranslateY
/ CompositeTransform
来移动您的对象。
由于ScaleX
/ ScaleY
!