WPF 2D绘图(2)Geometry
生活随笔
收集整理的這篇文章主要介紹了
WPF 2D绘图(2)Geometry
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
Shape是對Geometry的一種封裝,Shape本質上還是通過繪制Geometry的形狀,然后以填充筆刷來呈現效果
如Rectangle
<Path Stroke="Black" StrokeThickness="1" Fill="#CCCCFF"><Path.Data><RectangleGeometry Rect="30,55 100 30" /></Path.Data></Path>?
<Rectangle Stroke="Black" StrokeThickness="1" Fill="#CCCCFF" Width="100" Height="30"></Rectangle>這兩者是等價的
Rectangle 是對RectangleGeometry 的封裝實現,Rectangle 布局內部將會重寫,所以封裝了起始點
Geometry(沒有筆刷的透明形狀)本身無法呈現,必須放在Path容器中才可以
同樣的其他的shape也對應Geometry,如果沒有的話則以PathGeometry表示.
GeometryGroup
可以同時將多個Geometry放在一起成為一個新的圖形
<Path Stroke="Black" StrokeThickness="1" Fill="#CCCCFF"><Path.Data><GeometryGroup FillRule="Nonzero"><LineGeometry StartPoint="10,10" EndPoint="50,30" /><EllipseGeometry Center="40,70" RadiusX="30" RadiusY="30" /> <RectangleGeometry Rect="30,55 100 30" /></GeometryGroup></Path.Data></Path>?
好比Path是一張畫布,代表著一個FrameworkElement。如果使用Shape的話,則需要三個FrameworkElement,這是對性能的挑戰.FrameworkElement多的話將會大大降低程序的性能,這時還得采用傳統的繪圖方法.
即Shape依賴于Geometry
1000個Shape會產生1000個Geometry,但1000個Geometry可以放在1個Shape中,性能不言而喻了
轉載于:https://www.cnblogs.com/Clingingboy/archive/2010/11/23/1885124.html
總結
以上是生活随笔為你收集整理的WPF 2D绘图(2)Geometry的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSS/DIV网页设计视频教程目录【转】
- 下一篇: Android 的基本组件之一 Gall