我希望用户可以在一个轴上缩放图像,并且用户可以按比例缩放图像。
我有 xaml::
<Image Source="my_image.jpg" ManipulationDelta="UIElement_OnManipulationDelta" Width="400" Height="400">
<Image.RenderTransform>
<ScaleTransform x:Name="scaleImage" CenterX="200" CenterY="200"></ScaleTransform>
</Image.RenderTransform>
</Image>
我有代码:
private void UIElement_OnManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
//scale image by only x
if (e.DeltaManipulation.Scale.X != 0 && e.DeltaManipulation.Scale.Y == 1)
{
scaleImage.ScaleX *= e.DeltaManipulation.Scale.X;
}
//scale image by only y
else if (e.DeltaManipulation.Scale.X == 1 && e.DeltaManipulation.Scale.Y != 0)
{
scaleImage.ScaleY *= e.DeltaManipulation.Scale.Y;
}
//proportion scale
else if (e.DeltaManipulation.Scale.X != 0 && e.DeltaManipulation.Scale.Y != 0)
{
scaleImage.ScaleX *= e.DeltaManipulation.Scale.X;
scaleImage.ScaleY *= e.DeltaManipulation.Scale.X;
}
}
但是此代码的工作原理非常不稳定。
如何改进这个解决方案?