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

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

RectangleGeometry

在使用RectangleGeometry控制元件繪製矩形時,矩形的位置和尺寸由Rect屬性定義,該屬性指定矩形的相對位置、高度和寬度。Rect有四個引數,前兩個引數表示矩形左上角的位置,後兩個引數分別表示矩形的寬和高。下面將通過示例演示如何使用RectangleGeometry控制元件繪製矩形。

在一個開啟的Windows應用商店專案中新建一個空白頁,並命名為RectangleGeometryPage,雙擊開啟此頁面的RectangleGeometryPage.xaml檔案,在Grid元素中新增如下程式碼。

<Path Fill="red" Stroke="blue" StrokeThickness="3">

<Path.Data>

<RectangleGeometry Rect="300,300,100,100" />

</Path.Data>

</Path>

上面的程式碼首先定義一個Path控制元件並設定Fill屬性為紅色(red)、Stroke屬性為藍色(blue)和StrokeThickness屬性為3畫素。接著在Path.Data的內部使用RectangleGeometry的Rect屬性定義了一個起始座標為 (300,300)、高度和寬度均為100的矩形。繪製矩形的執行效果如圖8-11所示。

接下來在後臺使用RectangleGeometry型別的物件繪製一個與前臺一樣的矩形,程式碼如下所示:

public RectangleGeometryPage()

{

this.InitializeComponent();

//例項化Path物件

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

mypath.StrokeThickness = 3;

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

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

//

例項化rectang物件

RectangleGeometry rectang = new RectangleGeometry();

//設定矩形的位置與大小

rectang.Rect = new Rect(300, 300, 100, 100);

mypath.Data = rectang;

//mypath新增到MyShow控制元件中

MyShow.Children.Add(mypath);

在上面的程式碼中,首先例項化Path型別的物件mypath,並設定StrokeThickness 為3畫素、Stroke屬性為藍色(Blue)和Fill為紅色(Red)。然後定義RectangleGeometry型別的物件rectang,接著用Rect型別的物件給rectang的Rect屬性賦值。將rectang物件賦值給mypath物件的Data屬性,最後把mypath物件新增到名為MyShow的控制元件中。

執行此頁面,利用RectangleGeometry繪製矩形的效果如圖8-10所示。

圖8-10 RectangleGeometry 畫的矩形

RectangleGeometry物件除了能繪製幾何圖形,還可以定義影象的剪輯區域,在Geometry的子類中目前只有RectangleGeometry支援定義剪輯區域。下面通過一個簡單的示例來展示此功能,程式碼如下所示:

<!--原圖-->

<Image Source="Images/Image.png" Width="200"></Image>

<!--截圖程式碼-->

<Image Source="Images/Image.png" Width="200" >

<Image.Clip>

<RectangleGeometry Rect="20,20,100,100">

</RectangleGeometry>

</Image.Clip>

</Image>

上面的程式碼添加了兩個Image控制元件,一個用於顯示原圖,另一個用於顯示剪輯後的圖片。接著設定Image控制元件的Source屬性為圖片在專案中的路徑,這需要提前將圖片匯入到專案中以便獲得圖片的路徑。最後在第二個Image控制元件的Clip屬性中新增一個RectangleGeometry元素,並設定它的Rect屬性,這樣即可實現圖片的剪輯。

執行上面的程式碼,截圖效果對比如圖8-11所示。

圖8-11 截圖效果對比圖