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

Win10系列:C#應用控制元件進階8

LineGeometry

LineGeometry控制元件通過指定直線的起點和終點來定義線。LineGeometry物件無法進行自我繪製,因此同樣需要使用 Path元素來輔助呈現。LineGeometry與Line物件很相似,它們都沒有內部面積,不過兩者在用法上有些區別,通過定義LineGeometry的StartPoint與EndPoint屬性來確定線的起點與終點。下面將演示如何使用LineGeometry繪製一個線形。

下面利用LineGeometry控制元件繪製一個起點為(300,300)終點為(400,400)的線。在一個開啟的Windows應用商店專案中新建一個空白頁,並命名為LineGeometryPage,雙擊開啟此頁面的LineGeometryPage.xaml檔案,在Grid元素中新增如下程式碼。

<Path Stroke="Red" StrokeThickness="1">

<Path.Data>

<LineGeometry StartPoint="300,300" EndPoint="400,400"/>

</Path.Data>

</Path>

上面的程式碼首先定義Path並對Stroke和StrokeThickness屬性賦值為紅色(Red)、1畫素,Path元素本身有一個與之關聯的畫刷,這是通過Path輔助LineGeometry呈現的原因。然後通過定義LineGeometry控制元件的StartPoint和EndPoint屬性來確定線形幾何的起點與終點。

前面介紹了在前臺繪製線形幾何圖形,下面我們來看一下使用後臺程式碼繪製此圖形,程式碼如下所示:

public LineGeometryPage()

{

this.InitializeComponent();

//例項化Path物件

Windows.UI.Xaml.Shapes.Path mypath = new Windows.UI.Xaml.Shapes.Path();

mypath.StrokeThickness = 1;

//定義線的顏色

mypath.Stroke = new SolidColorBrush(Colors.Red);

LineGeometry line = new LineGeometry();

//設定起始點

line.StartPoint = new Point(300, 300);

//設定終點

line.EndPoint = new Point(400, 400);

//line 物件的值賦值給Data

mypath.Data = line;

MyShow.Children.Add(mypath);

}

在上面的程式碼中,首先例項化Path型別的物件mypath,並設定mypath物件的StrokeThickness 屬性值為1、Stroke為紅色(Red)。然後定義LineGeometry型別的物件line,並設定line物件的StartPoint和EndPoint屬性為(300,300)、(400,400)。接著將line物件賦值給mypath物件的Data屬性,最後呼叫MyShow容器物件的Children屬性中的Add方法,將這個矩形加入到頁面中顯示。

執行此頁面,簡單直線的執行效果如圖8-9所示。

圖8-9 簡單直線的效果圖