1. 程式人生 > >Win10系列:C#應用控制元件進階4

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 簡單的多邊形