Silverlight开发历程—(绘制几合图形,GeometryGroup,PathGeometry)


 Silverlight 还提供了几合绘制图形类Geometry比Share更加的灵活。

一、Geometry和Share

Geometry类(几何绘图)包括,LineGeometry(几何线条)、RectangleGeometry(几何矩形)、EllipesGeometry(几何椭圆图形)、GeometryGroup(几何组合)、PathGeometry(几何路径)他可以描述任何几何的2D形状。

从绘图来看Geometry类和Share类似乎都是绘制2D图形,但是这两个类有着重要的区别。Geometry(几何绘图)类更加轻量级,绘图效率更高于Share。

 

二、Geometry和Path

LineGeometry(几何线条)、RectangleGeometry(几何矩形)、EllipesGeometry(几何椭圆图形)、GeometryGroup(几何组合)、PathGeometry(几何路径)都是由Geometry继承而来的。

 

事实上Path还可以做为一个容器,允许容纳任何Geometry形状的几何图形包含在Path.Data内。

LineGeometry

类似于Share的Line对象用来生成一条线,区别在于Line用的是X和Y坐标来生成线条,而LineGeometry是利用StartPoint和EndPoint来完成线条的绘制。

如:


RectangleGeometry(几何矩形)、EllipesGeometry(几何椭圆图形)类似于Share中的Rectangle和Ellipes这里不做过多描述。

GeometryGroup

有些时候需要将某些图形组合起来,GeometryGroup就具备这个功能,如下面的例子:


        
            
                
                
                    
                    
                
            
        
        
            
                
                
                    
                    
                
            
         
    


运行结果如下:

在两个图形交叉的时候,可以使用Geometry的FillRule属性来定义组合图形的填充规则。FillRule属性有两个枚举值(EvenOdd)和(Zonzero).

PathGeometry

PathGeometry是Geometry中最灵活的,他可以绘制任意的2D几何图形。

 
            
                
                
                    
                    
                        
                            
                            
                                
                                    
                                    
                                    
                                
                            
                        
                    
                
            
        


运行结果:

 

为简化上面xaml,wpf提供了路径语法解析器,由

       

   

 

LineSegment对象

利用LineSegment对象创建直线对象

            
                
                    
                    
                
            
            
                
                    
                    
                        
                        
                        
                        
                        
                        
                    
                
            
        

运行结果:
 
ArcSegment 对象  
 
利用ArcSegment对象来绘制弧线元素:
 
            
                
                    
                    
                        
                        
                        
                        

                        
                    
                
            
        

运行结果:
 
BezierSegment对象
 
利用BeezierSegment对象来绘制贝塞尔曲线,贝塞尔曲线是由比较复杂的数学公式产生的。它用来计算两个控制点之间如何确定一条曲线的轮廓。如下例子:
  
        
            
                
                    
                    
                        
                    
                
            
        

运行结果:
 
下一节将会学习利用C#代码来绘制几何图形。

转载于:https://www.cnblogs.com/raphael5200/archive/2011/11/07/5114897.html

你可能感兴趣的:(Silverlight开发历程—(绘制几合图形,GeometryGroup,PathGeometry))