麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C > 正文

用C# 實現鼠標框選效果的實現代碼

2020-01-26 16:13:34
字體:
來源:轉載
供稿:網友

實現步驟:

1.實現整個鼠標框選的幾個事件(down、move、up),當鼠標點下記錄鼠標框選的起點,鼠標抬起結束操作。

2.以鼠標框選過程中獲取的鼠標坐標為基點計算框選的矩形的4點坐標,4點坐標以順時針方向布點。

3.通過Shape.Path類實現在類上畫出此矩形。

代碼如下:

復制代碼 代碼如下:

namespace HostDemo {
 public class HostCanvas : Canvas {
  public HostCanvas() {
   InitializeComponent();
  }

  private void InitializeComponent() {
   this.Loaded += OnLoad;
   this.MouseDown += OnMouseDown;
   this.MouseMove += OnMouseMove;
   this.MouseUp += OnMouseUp;
   locus = new Path();
   locus.Fill = new SolidColorBrush(Color.FromArgb(1, 255, 255, 255));
   locus.Stroke = Brushes.Red;
   locus.StrokeThickness = 1;
   locus.IsManipulationEnabled = true;
  }

  void OnMouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e) {
   ispath = false;
  }

  void OnMouseMove(object sender, System.Windows.Input.MouseEventArgs e) {
   if(ispath){
    endpoint = e.GetPosition(this);
    locus.Data = DrawingRect(startpoint,endpoint);
   }
  }

  void OnMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) {
   if(!this.Children.Contains(locus)) this.Children.Add(locus);
   if (locus.Data != null) locus.Data = null;
   startpoint = e.GetPosition(this);
   ispath = true;
  }

  void OnLoad(object sender, System.Windows.RoutedEventArgs e) {
   this.Background = new SolidColorBrush(Color.FromArgb(35, 255, 255, 255));
  }

  private PathGeometry DrawingRect(Point beginpoint, Point closepoint) {
   PathGeometry result = new PathGeometry(); 
   PathFigure figure = new PathFigure();
   figure.IsClosed = true;
   figure.StartPoint = beginpoint;
   PathSegmentCollection pathSegmentCollection = new PathSegmentCollection();
   PathFigureCollection pathFigureCollection = new PathFigureCollection();  
   LineSegment m1 = new LineSegment();
   m1.Point = new Point(closepoint.X, beginpoint.Y);
   LineSegment m2 = new LineSegment();
   m2.Point = closepoint;
   LineSegment m3 = new LineSegment();
   m3.Point = new Point(beginpoint.X, closepoint.Y);
   pathSegmentCollection.Add(m1);
   pathSegmentCollection.Add(m2);
   pathSegmentCollection.Add(m3);
   figure.Segments = pathSegmentCollection;
   pathFigureCollection.Add(figure);
   result.Figures = pathFigureCollection;

   return result();
  }

  private Path locus;
  private bool ispath = false;
  private Point startpoint;
  private Point endpoint;
 }
}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 国产成人精品无人区一区 | 日日鲁一鲁视频 | 黄色男女视频 | 国产日韩在线视频 | 精品国产一区二区三区四区阿崩 | 鲁丝一区二区三区不属 | 日本在线不卡一区二区三区 | 日本不卡视频在线观看 | 精品亚洲va在线va天堂资源站 | 欧美日韩免费在线观看视频 | 懂色av懂色aⅴ精彩av | 亚洲va国产va | japanese hot milf free av | 老女人碰碰在线碰碰视频 | 99精品国产小情侣高潮露脸在线 | av成人在线电影 | www.9191.com| 在线看免电影网站 | h久久 | 日韩视频在线视频 | 久久精品亚洲欧美日韩精品中文字幕 | 久久久www成人免费毛片 | 人禽l交免费视频 | 综合网天天色 | 久久精品中文字幕一区二区 | 九九热在线视频观看 | 久国久产久精永久网页 | 黄色一级毛片免费看 | av电影院在线观看 | 免费国产羞羞网站视频 | 中文字幕视频在线播放 | 色就色 综合偷拍区91网 | 97人人草 | 日韩视频―中文字幕 | 91美女啪啪 | 亚洲综合视频网 | 最新午夜综合福利视频 | 国产一及毛片 | 欧美视频国产精品 | 一区二区三区国产在线 | 在线视频 日韩 |