WPF图片旋转缩放

4 篇文章 0 订阅

上传图片后,实现点击图片旋转,滚动鼠标滚轮缩放图片
使用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;
        } ```

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值