上传图片后,实现点击图片旋转,滚动鼠标滚轮缩放图片
使用LayoutTransform自适应图片在box中的显示,图片太大时超出部份也能显示
设计页xaml:
<Image Name="image1" Grid.Column="1" Grid.Row="1" Stretch="Fill" Width="400" Height="621" PreviewMouseMove="OnMoveOverMainUI" MouseLeftButtonDown="ImgMouseDown" MouseWheel="ImgMouseWheel">
<Image.LayoutTransform>
<TransformGroup>
<RotateTransform x:Name="rotate"/>
<TranslateTransform x:Name="transer"/>
<ScaleTransform x:Name="scaler"/>
</TransformGroup>
</Image.LayoutTransform>
</Image>
代码页xaml.cs:
//鼠标点击事件
private void ImgMouseDown(object sender, MouseButtonEventArgs e)
{
//图片旋转
double width = image1.ActualWidth;
double height = image1.ActualHeight;
m_Angle += 90;
m_Angle = m_Angle % 360;
rotate.Angle = m_Angle;
}
//鼠标滚轮事件
private void ImgMouseWheel(object sender, MouseWheelEventArgs e)
{
//图片缩放
var point = e.GetPosition(image1);
var delta = e.Delta * 0.002;
// 限制最大、最小缩放倍数
if (scaler.ScaleX + delta < 0.1 || scaler.ScaleX + delta > 30) return;
scaler.ScaleX += delta;
scaler.ScaleY += delta;
transer.X -= point.X * delta;
transer.Y -= point.Y * delta;
} ```