Line mydrawline = new Line() ; mydrawline .Stroke = Brushes .Black ;//外宽颜色,在直线里为线颜色 //mydrawline .Stroke = new SolidColorBrush(Color .FromArgb ( 0xFF , 0x5B , 0x9B , 0xD5 )) ;//自定义颜色则用这句 mydrawline .StrokeThickness = 3 ;//线宽度 mydrawline .Height = 30 ; mydrawline .Width = 60 ; mydrawline .X 1 = 10 ; mydrawline .Y 1 = 0 ; mydrawline .X 2 = 10 ; mydrawline .Y 2 = 30 ; //将直线对象添加到canvas画布中 DrawCanvas .Children .Add (mydrawline) ; 1. canvas 绘图 是一种基于状态的 绘图 绘图 的过程应该是先设置 绘图 的状态,再调用具体的函数进行绘制。 例如绘制一条(100,100)到(700,700)的直线: context.moveTo (100,100); //设置起点状态 context.lineTo (700,700); //设置末端状态 context.lineWidth = 5 图元类的图形绘制,在OnRender重载函数中实现,绘制的坐标系与 canvas 相同。创建DV_TrackLine类实例后,将其在 Canvas 中的定位坐标保存在ptBase中,并通过SetTop和SetLeft函数定位。图元移动后,其在 canvas 中的位置也需要复位,在PanAndZoom Canvas 类的Reset()函数改造如下。在MainWindow类中,调用单体类,传入 canvas 对象,实现图元的绘制。定义了一个单体类,用于存放所有的图元,下面的代码作为示例,只是创建一个图元。 与传统的.NET开发使用GDI+进行 绘图 不同, WPF 拥有自己的一套图形API, 绘图 为矢量图。 绘图 可以在任何一种布局控件中完成, wpf 会根据容器计算相应坐标。最常用的是 Canvas 和Grid。基本图形包括以下几个,都是Shaper类的派生类。1、Line,直线段,可以设置Stroke2、Rectangle,有Stroke也有Fill3、Ellipse,椭圆,同上4、Polygon,多边形。由多条直线线段围成的闭合区域,同上。5、Polyline,折线,不闭合,由多条首尾相接的直线段组成。 WPF 中没有绘画工具,只有属性配置和编写代码去绘制,要像CorelDraw那样作图可以转到Blend去做。课件从CorelDraw中做好图片,用Blend描绘出来,最后对绘画出来的图标进行调试。结论是 WPF 绘画控件图标做出来是符合预期的,比CorelDraw画图和像素画图工具更好。应该是 WPF 的像素可以设置到小数点后多位,实现了矢量画图。我们可以结合CorelDraw和 WPF 画出理想的图标和界面。 1、 Canvas 面板 首先我们新建一个 WPF 程序,在默认的XAML中将原始的Grid布局容器删除。从工具箱中拖入 Canvas 控件进入窗口,去掉 Canvas 的长宽限制。 如果我们这时把按钮组件拖入 Canvas 面板中,那么我们可以发现,按钮是通过 Canvas .Left, Canvas .Top这两个属性特性来控制其在面板中的位置,同样的我们也可以使用 Canvas .Right, Canvas .Bottom这两个或者其他特