ScaleTransform en LayoutTransform no funciona pero funciona con RenderTransform
Estoy tratando de hacer dos cosas en mi aplicación.
1. Imagen de zoomCapaz de hacer conRenderTransform
. pero necesita lograr enLayoutTransform
para permitirScrollviewer
.
trabajando.
<Image.RenderTransform>
<ScaleTransform ScaleX="{Binding ScaleX}" ScaleY="{Binding ScaleY}" />
</Image.RenderTransform>
No funciona
<Image.LayoutTransform>
<ScaleTransform ScaleX="{Binding ScaleX}" ScaleY="{Binding ScaleY}" />
</Image.LayoutTransform>
2. Girar imagentrabaja con ambosScaleTransform
yRenderTransform
pero lo necesito conScaleTransform
para obtenerScrollViewer
El problema está enScaleTransform
conLayoutTransform
<Image.LayoutTransform>
<TransformGroup>
<ScaleTransform ScaleX="{Binding ScaleX}" ScaleY="{Binding ScaleY}" />
<RotateTransform Angle="{Binding RotateAngle}"/>
</TransformGroup>
</Image.LayoutTransform>
No es capaz de lograr ambosScaleTransform
yRotateTransform
conScrollViewer
He intentado conCanvas
<Canvas.LayoutTransform>
<TransformGroup>
<ScaleTransform ScaleX="{Binding ScaleX}" ScaleY="{Binding ScaleY}" />
<RotateTransform Angle="{Binding RotateAngle}"/>
</TransformGroup>
</Canvas.LayoutTransform>
Diferente comportamiento de rotación pero capaz de lograr ambas funcionalidades trabajando peroScrollViewer
No se desplaza.
Intenté hacer lo mismo conViewBox
rotar funciona con ScrollViewer Zoom no funciona.
Código completo a continuación
<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>
Cualquiera puede ayudarme con sugerencias.
Solución resuelta para mí sugerida por 'GazTheDestroyer'
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>