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 簡單直線的效果圖