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这两个或者其他特