Win10系列:C#應用控制元件進階4
多邊形
若要繪製多邊形需要用到Polygon元素,並通過定義一系列的點繪製多邊形。Polygon型別的物件有Points屬性, 這個屬性用來定義組成邊的點集。在前臺程式碼中,使用空格分隔各個點,然後利用逗號分隔座標點來定義點座標。不必為了將起點和終點指定為相同的值而宣告閉合點,Polygon類假設要定義閉合形狀,並且會自動將終點與起點連起來。下面將演示如何繪製一個多邊形。
在一個開啟的Windows應用商店專案中新建一個空白頁,並命名為PolygonPage,雙擊開啟此頁面的PolygonPage.xaml檔案,在Grid元素中新增如下程式碼。
<Polygon Fill="Red" Points="70,100 10,200 210,200 100,100" />
上面的程式碼使用Polygon控制元件的Points屬性設定多邊形的4個頂點座標分別為 (70,100)、(10,200)、(210,200)和(100,100),接著使用Red給Fill屬性賦值,從而繪製一個填充顏色為紅色的多邊形。沒有對Stroke屬性賦值,以便它沒有外圍輪廓。
接下來介紹使用後臺程式碼繪製多邊形。與前臺程式碼不一樣的是,後臺程式碼需要使用 PointCollection型別的物件存放各個點,接著將每個點作為一個Point物件新增到集合中,然後把集合物件的值賦值給Points屬性,這樣便可以繪製與前臺一樣的多邊形。程式碼如下所示:
public PolygonPage()
{
this.InitializeComponent();
Polygon polygon = new Polygon();
polygon.Fill = new SolidColorBrush(Colors.Red);
//例項化一個pointCollenction的物件
PointCollection points = new PointCollection();
//新增點
points.Add(new Point(70, 100));
points.Add(new Point(10, 200));
points.Add(new Point(210, 200));
points.Add(new Point(100, 100));
//設定polygon的點
polygon.Points = points;
MyCanvas.Children.Add(polygon);
}
在上面的程式碼中,首先例項化一個Polygon型別的物件polygon,設定Stroke屬性為紅色,接著定義存放點集的PointCollection型別的points物件,利用points物件的Add屬性新增四個點,然後把points賦值給polygon物件的Points屬性,這樣便可以繪製一個與前臺方式實現效果一致的多邊形,最後呼叫MyCanvas容器物件的Children屬性中的Add方法,將這個多邊形加入到頁面中顯示。
執行此頁面,繪製多邊形的效果如圖8-5所示。
圖8-5 簡單的多邊形