WPF-2D圖形(二)Geometry幾何體
Geometry有很多子類,可以分成基本幾何體(basic geometry)和聚合幾何體(aggregate geometry)。
-------------------------------------------------------------------------------------------------------------------------------------------------------
基本幾何體分類
1、RectangleGeometry
包括定義尺寸的Rect類,和圓角的X,Y軸的半徑,RadiusX和RadiusY。
2、EllipseGeometry
包括RadiusX和RadiusY和Center(中心點)屬性。
3、LineGeometry
包括StartPoint(開始點)和EndPoint(結束點)。
4、PathGeometry
在它的Figure(輪廓)內容屬性中包含一組PahtFigure物件的集合。
前面三種幾何體是PathGeometry的特例,可以用PathGeometry表示任何幾何體。
--------------------------------------------------------------------------------------------------------------------------------------------------------
PathGeometry是最強大的畫幾何類,重點說下它
PahtGeometry包括PathFigure和PathSegment。這兩個都是集合。
每一個PathFigure包含一個或多個連線起來的PathSegment。PathSegment僅僅是一個線段,它有7個派生類。
1、LineSegment
用於表示線段的類。
2、PolyLineSegment
用於表示線段連線順序的快捷方式
3、ArcSegment
用於表示假想的橢圓上週線上的曲線段的類。
4、BezierSegment
用於表示三次貝塞爾曲線段的類
5、PolyBezierSegment
用於表示一組BezierSegment的連線順序的快捷方式
6、QuadraticBezierSegment
用於表示二次貝塞爾曲線段的類
7、PolyQuadraticBezierSegment
用於表示一組QuadraticSegment的連線順序的快捷方式
-----------------------------------------------------------------------------------------------------------------------------------
開始舉例子了
<Image> <Image.Source> <DrawingImage> <DrawingImage.Drawing> <GeometryDrawing> <GeometryDrawing.Pen> <Pen Brush="Black" Thickness="10"></Pen> </GeometryDrawing.Pen> <GeometryDrawing.Geometry> <PathGeometry> <PathFigure> <LineSegment Point="0,100"></LineSegment> <LineSegment Point="100,100"></LineSegment> </PathFigure> </PathGeometry> </GeometryDrawing.Geometry> </GeometryDrawing> </DrawingImage.Drawing> </DrawingImage> </Image.Source> </Image>
這裡畫了一個L,兩條直線;LineSegment僅有一個point屬性,記錄結束點的座標;起始點的座標,第一條線預設是0,0,其他線的預設是上一條線的結束點。這樣就自動把所有直線連線上了。
如果要自定義起始點,在PathFigure加個屬性StartPoint="10,10"。
在討論下GeometryDrawing.Brush是否對這個例子有效。
在GeometryDrawing加個屬性Brush=“Red”;顏色填充了PathFigure,PathFigure其實是封閉的,只是這條封閉了這個幾何體的線是否顯示的問題。
讓這條封閉線顯示出來。有兩種方法,直接再補一條point值等於Pathfigureqi起始點的LineSegment;或者給PahtFigure加個屬性IsClosed="True"。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
PathGeometry的PathFigure是一個集合,可以包括多個幾何體形成組合。