none
鼠标拖出选区,插入图片? RRS feed

  • 问题


  • private void button1_Click(object sender, RoutedEventArgs e)

    {

    鼠标在界面上拖出一个选区,松开鼠标弹出插入图片的对话框,图片被插入选区中之后,可以缩放和移动。

    这个过程如何实现??

    }

    2012年3月26日 3:19

答案

  • 画选区:

    使用Canvas布局,监听MouseDown、MouseUp、MouseMove事件,利用Canvas.Left(),Canvas.Top(),Control.Width,Control.Height控制选区位置及范围。

    缩放移动:

    建议新建缩放移动模式以区别选区操作,使用VisualTreeHelper.HitTest获取画布上的控件,之后仅是对控件位置及大小的调整。

    还需要考虑遮蔽等其他问题。


    Wanpeng Wanpeng.Ones@gmail.com

    2012年3月26日 6:58
  • 通过楼上的方法,你可以侦听鼠标的一些事件,然后实现插入图片。

    对于图片的旋转和缩放,你可以用Adorner 装饰层的方式,参考这个例子:https://skydrive.live.com/?cid=14362542B2FD72F8&id=14362542B2FD72F8%21210 


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年3月26日 7:09
    版主

全部回复

  • 画选区:

    使用Canvas布局,监听MouseDown、MouseUp、MouseMove事件,利用Canvas.Left(),Canvas.Top(),Control.Width,Control.Height控制选区位置及范围。

    缩放移动:

    建议新建缩放移动模式以区别选区操作,使用VisualTreeHelper.HitTest获取画布上的控件,之后仅是对控件位置及大小的调整。

    还需要考虑遮蔽等其他问题。


    Wanpeng Wanpeng.Ones@gmail.com

    2012年3月26日 6:58
  • 通过楼上的方法,你可以侦听鼠标的一些事件,然后实现插入图片。

    对于图片的旋转和缩放,你可以用Adorner 装饰层的方式,参考这个例子:https://skydrive.live.com/?cid=14362542B2FD72F8&id=14362542B2FD72F8%21210 


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年3月26日 7:09
    版主