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

首頁 > 編程 > C > 正文

如何用C# 實現鼠標框選效果

2020-02-24 14:30:17
字體:
來源:轉載
供稿:網友

本文是武林小編將為大家介紹關于如何用C# 實現鼠標框選效果多內容,希望本篇文章能幫助到大家,看完后希望大家點個贊哦。

實現步驟:

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;
?}
}

本文詳細介紹了如何用C# 實現鼠標框選效果多內容,我們只需要根據以上步驟即可用C# 實現鼠標框選效果。

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

圖片精選

主站蜘蛛池模板: 精品一区二区三区免费毛片 | 免费一级a毛片免费观看 | 成人国产精品一区 | 国产人成精品综合欧美成人 | 欧美综合在线观看 | 欧美一区黄色 | 性欧美一区| 韩国一大片a毛片 | 午夜视频亚洲 | 毛片免费一区二区三区 | 欧美精品色精品一区二区三区 | 国产精品久久久久久久久久10秀 | 日日碰日日操 | 美女扒开腿让男生桶爽网站 | 日韩激情 | 成年人黄视频 | 亚洲一区二区三区视频免费 | 久久嗨 | 久久久久久久久浪潮精品 | 国产又粗又爽又深的免费视频 | 天堂亚洲一区 | 精品中文字幕在线观看 | 一级黄色淫片 | 亚洲码无人客一区二区三区 | 精品国产欧美一区二区 | 欧美色爱综合 | 久久久久国产成人精品亚洲午夜 | 久久免费视频7 | 国产日产精品一区四区介绍 | 538任你躁在线精品视频网站 | 久久久久久久一区二区 | av免费提供 | 本站只有精品 | 欧美精品第1页 | 久久丝袜脚交足黄网站免费 | 国内精品久久久久久影视8 嫩草影院在线观看网站成人 | 56av国产精品久久久久久久 | 久久久精品福利 | 色视频一区二区 | 国产艳妇av视国产精选av一区 | 羞羞视频免费观看入口 |