我有一个允许用户旋转图像的控件 - 这是XAML的简化版本:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Border Grid.Row="0" Margin="5"
BorderBrush="Black" BorderThickness="2"
Background="#ddd">
<Viewbox>
<Image Source="image.jpg" RenderTransformOrigin="0.5, 0.5">
<Image.RenderTransform>
<RotateTransform Angle="{Binding ElementName=Slider, Path=Value}"/>
</Image.RenderTransform>
</Image>
</Viewbox>
</Border>
<Slider x:Name="Slider"
Grid.Row="1" Margin="5"
Minimum="-180" Maximum="180"
Value="0"/>
</Grid>
我遇到的问题是图像在旋转时可以超出包含矩形的边界,而我需要调整它以使其适合。我可以计算ViewModel的最佳拟合并将其绑定,但我很确定我可能只是错过了XAML中的一个技巧来让我发生这种情况。我认为Viewbox可能已经完成了这个伎俩,但事实并非如此,或者我错误地使用了它......
答案 0 :(得分:11)
固定!我知道这很简单:)
我将RenderTransform切换到LayoutTransform并像魅力一样工作!