Wpf 如何在ScrollViewer中旋转图像?
我尝试在ScrollViewer(WPF)中旋转图像,但整个图像需要保持可见。例如,如果旋转角度为45,则图像的角将被切断。我尝试通过计算旋转图像的周围矩形来设置图像的宽度和高度。它可以工作,但如果旋转角度超过45,则无法工作Wpf 如何在ScrollViewer中旋转图像?,wpf,image,image-rotation,Wpf,Image,Image Rotation,我尝试在ScrollViewer(WPF)中旋转图像,但整个图像需要保持可见。例如,如果旋转角度为45,则图像的角将被切断。我尝试通过计算旋转图像的周围矩形来设置图像的宽度和高度。它可以工作,但如果旋转角度超过45,则无法工作 <Grid> <ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Visible" Margin="0,0,0,0"> <Image x:Name="im
<Grid>
<ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Visible" Margin="0,0,0,0">
<Image x:Name="image" RenderTransformOrigin="0.5,0.5" Margin="0,0,0,0" MouseDown="image_MouseDown" MouseRightButtonDown="image_MouseRightButtonDown" MouseLeftButtonDown="image_MouseLeftButtonDown">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform x:Name="scal"/>
<SkewTransform/>
<RotateTransform Angle="90" x:Name="rot"/>
<TranslateTransform/>
</TransformGroup>
</Image.RenderTransform>
</Image>
</ScrollViewer>
</Grid>
在以下结构中使用
视图框
:
<ScrollViewer Width="100" Height="100" Background="Black" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
<Viewbox Width="100" Height="100">
<Border Width="100" Height="100" Background="Red" >
<Border.LayoutTransform>
<RotateTransform Angle="30" />
</Border.LayoutTransform>
</Border>
</Viewbox>
</ScrollViewer>
请添加XAML代码和您编写的C#代码。您需要维护
纵横比
,那么现在就会出现这样的问题。我使用Image.layoututtransform而不是Image.RenderTransform,它成功了。
<ScrollViewer Background="Black" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
<Viewbox>
<Border Width="1" Height="1" Background="Red" >
<Border.LayoutTransform>
<RotateTransform Angle="30" />
</Border.LayoutTransform>
</Border>
</Viewbox>
</ScrollViewer>