ScaleTransform в LayoutTransform не работает, но работает с RenderTransform
Я пытаюсь сделать две вещи в моем приложении.
1. Увеличить изображениеУмеет делать сRenderTransform
, но нужно добиться вLayoutTransform
включитьScrollviewer
.
за работой.
<Image.RenderTransform>
<ScaleTransform ScaleX="{Binding ScaleX}" ScaleY="{Binding ScaleY}" />
</Image.RenderTransform>
Не работает
<Image.LayoutTransform>
<ScaleTransform ScaleX="{Binding ScaleX}" ScaleY="{Binding ScaleY}" />
</Image.LayoutTransform>
2. Повернуть изображениеработает с обоимиScaleTransform
а такжеRenderTransform
но нужно сScaleTransform
чтобы получитьScrollViewer
Проблема вScaleTransform
сLayoutTransform
<Image.LayoutTransform>
<TransformGroup>
<ScaleTransform ScaleX="{Binding ScaleX}" ScaleY="{Binding ScaleY}" />
<RotateTransform Angle="{Binding RotateAngle}"/>
</TransformGroup>
</Image.LayoutTransform>
Не в состоянии достичь обоихScaleTransform
а такжеRotateTransform
сScrollViewer
Я пробовал сCanvas
<Canvas.LayoutTransform>
<TransformGroup>
<ScaleTransform ScaleX="{Binding ScaleX}" ScaleY="{Binding ScaleY}" />
<RotateTransform Angle="{Binding RotateAngle}"/>
</TransformGroup>
</Canvas.LayoutTransform>
Различное поведение поворота, но в состоянии достичь как функциональности, так и работы, ноScrollViewer
не прокручивая
Пытался сделать то же самое сViewBox
вращение работает с ScrollViewer Zoom не работает.
Полный код ниже
<ScrollViewer>
<Viewbox RenderTransformOrigin="0.5,0.5" Height="Auto" Width="Auto" ScrollViewer.CanContentScroll="True">
<Viewbox.LayoutTransform>
<TransformGroup>
<ScaleTransform ScaleX="{Binding ScaleX}" ScaleY="{Binding ScaleY}" />
<RotateTransform Angle="{Binding RotateAngle}"/>
</TransformGroup>
</Viewbox.LayoutTransform>
<Image RenderTransformOrigin="0.5,0.5" >
<Image.Source>
<BitmapImage UriSource="{Binding ImagePath}" ScrollViewer.CanContentScroll="True"></BitmapImage>
</Image.Source>
</Image>
</Viewbox>
</ScrollViewer>
Любой может помочь мне с предложениями.
Подходящее для меня решение, предложенное «ГазТестройер»
XAML<Image RenderTransformOrigin="0.5,0.5" Stretch="None" >
<Image.LayoutTransform>
<TransformGroup>
<ScaleTransform ScaleX="{Binding ScaleX}" ScaleY="{Binding ScaleY}" />
<RotateTransform Angle="{Binding RotateAngle}"/>
</TransformGroup>
</Image.LayoutTransform>
<Image.Source>
<BitmapImage UriSource="{Binding ImagePath}" ScrollViewer.CanContentScroll="True"></BitmapImage>
</Image.Source>
</Image>