我试图在我的申请中做两件事。
1.缩放图像
能够使用RenderTransform。但是需要在LayoutTransform中实现以启用Scrollviewer。
xaml
工作中。
<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试过了
xaml
<Canvas.LayoutTransform>
<TransformGroup>
<ScaleTransform ScaleX="{Binding ScaleX}" ScaleY="{Binding ScaleY}" />
<RotateTransform Angle="{Binding RotateAngle}"/>
</TransformGroup>
</Canvas.LayoutTransform>不同的旋转行为,但能够实现两种功能工作,但ScrollViewer不滚动。
帆布旋转行为
-


试着用ViewBox做同样的事情
ScrollViewer缩放不起作用。
以下是完整代码
<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>任何人都可以帮我提建议。
“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>发布于 2015-07-31 14:54:42
尝试将Stretch="None"添加到Image标记中,否则就会提供显式的高度和宽度。
在某些面板中,WPF将自动将图像扩展到面板中的可用空间,这将使您的缩放转换成为布局过程的一部分时的冗余。
https://stackoverflow.com/questions/31747574
复制相似问题