canvas教程

WPF:使用鼠标在Canvas面板上画线

字号+ 作者:H5之家 来源:H5之家 2017-08-28 16:01 我要评论( )

使用Canvas+Line 任意画线 主要使用布局面板Canvas作为背景,通过其属性Children添加Line 来实现画线。可以理解为 每一个Line 就是一个点。 不清楚Canvas的用法

  /// <summary> /// 按下鼠标左键移动 /// </summary> private void Canvas_PreviewMouseMove(object sender, MouseEventArgs e) { if (e.LeftButton == MouseButtonState.Pressed) { // 返回指针相对于Canvas的位置 Point point = e.GetPosition(myCanvas); if (pointList.Count == 0) { // 加入起始点 pointList.Add(new Point(this.startPoint.X, this.startPoint.Y)); } else { // 加入移动过程中的point pointList.Add(point); } // 去重复点 var disList = pointList.Distinct().ToList(); var count = disList.Count(); // 总点数 if (point != this.startPoint && this.startPoint != null) { var l = new Line(); string color = (cboColor.SelectedItem as ComboBoxItem).Content as string; if (color == "默认") { l.Stroke = Brushes.Black; } if (color == "红色") { l.Stroke = Brushes.Red; } if (color == "绿色") { l.Stroke = Brushes.Green; } l.StrokeThickness = 1; if (count < 2) return; l.X1 = disList[count - 2].X; // count-2 保证 line的起始点为点集合中的倒数第二个点。 l.Y1 = disList[count - 2].Y; // 终点X,Y 为当前point的X,Y l.X2 = point.X; l.Y2 = point.Y; myCanvas.Children.Add(l); } } }
       移动过程中创建Line对象并加入Canvas中。    代码中的颜色判断最好修改成枚举类型。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 如何使用canvas绘图

    如何使用canvas绘图

    2017-08-26 14:05

  • 在IE下动态创建canvas使用excanvas时失效解决方法

    在IE下动态创建canvas使用excanvas时失效解决方法

    2017-08-22 15:04

  • 求Android中canvas.drawPicture(p);的使用方法?求 android canva

    求Android中canvas.drawPicture(p);的使用方法?求 android canva

    2017-08-19 12:00

  • 使用jquery-qrcode生成二维码

    使用jquery-qrcode生成二维码

    2017-08-16 14:01

网友点评