WPF在图像控件用鼠标拖拽出矩形的实现方法

  

今天有小伙伴问我一个问题,在图像控件用鼠标拖拽出矩形,本文告诉大家如何使用鼠标画出矩形

  

做出来的效果先请大家看一下

  

 WPF在图像控件用鼠标拖拽出矩形的实现方法

  

最简单的方法是在下来的时候记录按下的点,在移动的时候重新计算所在的宽度

  

 WPF在图像控件用鼠标拖拽出矩形的实现方法

  

先在界面使用一个图片和一个矩形

        & lt;网格x: Name=巴瘛北?   & lt;图像源=" TIM截图20180811150831. png”祝辞& lt;/Image>   & lt; TextBlock HorizontalAlignment="中心" VerticalAlignment=爸行摹痹诨队梦饰也┛蚳ttp://lindexi.oschina。io & lt;/TextBlock>   & lt;矩形x: Name=熬匦巍盨trokeThickness中风=?”=昂谏盚orizontalAlignment=白蟆盫erticalAlignment=岸ゼ丁弊4? lt;/Rectangle>   & lt;/Grid>      

需要注意,图片的位置需要修改为自己需要的图片

  

这里的矩形<代码> 需要做一些设置,主要<代码> HorizontalAlignment 和<代码> VerticalAlignment>   

现在打开cs代码,在按下和移动修改矩形

        MouseDown +=MainWindow_MouseDown;   MouseMove +=MainWindow_MouseMove;   MouseUp +=MainWindow_MouseUp;      

需要两个字段来记录当前是否按下和第一次按下所在的坐标

  

刚才给网格<代码> 的命名就是为了拿到相对网格的坐标

        私人空间MainWindow_MouseDown(对象发送方,MouseButtonEventArgs e)   {   的地方=true;      _downPoint=e.GetPosition(网格);   }      私人bool的地方;      私人点_downPoint;      

在鼠标按下时拿到按下的坐标,通过这个坐标就可以计算出矩形所在的位置

        私人空间MainWindow_MouseUp(对象发送方,MouseButtonEventArgs e)   {   的地方=false;   }      私人空间MainWindow_MouseMove(对象发送方,MouseEventArgs e)   {   如果(的地方)   {   var=e.GetPosition点(网格);      var矩形=new矩形(_downPoint,点);   矩形。利润=new厚度(矩形。离开,rect.Top, 0, 0);   矩形。宽度=rect.Width;   矩形。身高=rect.Height;   }   }      

代码就是这么简单,通过修改<代码>保证金的方法修改矩形

  

如果对于高手,我建议使用<代码> RenderTransform> 这幅度里使用这个方法只是看起来简单

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

WPF在图像控件用鼠标拖拽出矩形的实现方法