詳細(xì)解讀Silverlight Line對(duì)象使用技巧
Silverlight中關(guān)于編碼方面的應(yīng)用是一個(gè)應(yīng)用重點(diǎn)。只有熟練的使用各種方法來進(jìn)行合理的編寫代碼,才能真正的實(shí)現(xiàn)我們所需要的圖形界面的需求。在Silverlight提供的諸多形狀對(duì)象中,Line對(duì)象無疑是最簡(jiǎn)單的一個(gè),源于此,大家很容易忽略掉Line對(duì)象的一些特色功能。例如下面提到的兩個(gè)應(yīng)用技巧。#t#
定義Silverlight Line對(duì)象起點(diǎn)和終點(diǎn)的外觀
默認(rèn)情況下,Line對(duì)象繪制的線條的起點(diǎn)和終點(diǎn)都是沒有樣式的,但可以通過StrokeStartLineCap、StrokeEndLineCap、StrokeDashCap屬性為直線對(duì)象額外增加線帽樣式。其中前兩個(gè)屬性主要用于實(shí)線對(duì)象,其取值類型為PenLineCap 枚舉(PenLineCap 枚舉的取值范圍見下表)。
所謂線帽是在直線的原有長(zhǎng)度外,額外增加的圖形
Silverlight Line對(duì)象成員名稱及說明
Flat 一個(gè)未超出直線上***一點(diǎn)的線帽。等同于無線帽。
Square 一個(gè)高度等于直線粗細(xì)、長(zhǎng)度等于直線粗細(xì)一半的矩形。
Round 一個(gè)直徑等于直線粗細(xì)的半圓形。
Triangle 一個(gè)底邊長(zhǎng)度等于直線粗細(xì)的等腰直角三角形。
下面的示例顯示的就是設(shè)置不同的StrokeStartLineCap、StrokeEndLineCap屬性值的Xmal代碼跟顯示效果:
- < Line Grid.Row="0" X1="80" Y1="30"
X2="330" Y2="30" Stroke="Red"
StrokeThickness="10" StrokeEndLineCap=
"Triangle">- < /Line>
- < Line Grid.Row="0" X1="80" Y1="80"
X2="330" Y2="80" Stroke="Blue"
StrokeThickness="10" StrokeEndLineCap=
"Triangle" StrokeStartLineCap="Round">- < /Line>
通過Silverlight Line對(duì)象繪制虛線效果,需要用到StrokeDashArray屬性,該屬性對(duì)應(yīng)一個(gè)Double類型的集合。該集合的奇數(shù)位表示線段的長(zhǎng)度,偶數(shù)位表示兩個(gè)線段之間的間隔長(zhǎng)度。如果只是表示普通的虛線,則只需定義一個(gè)數(shù)值就可以了,默認(rèn)會(huì)將該數(shù)值作為線段跟間隔的長(zhǎng)度。例如,下面的Xaml代碼就表示等一條等間距的虛線。
- < Line Grid.Row="1" X1="80"
Y1="30" X2="330" Y2="30"
StrokeDashArray="4" Stroke="Blue"
StrokeThickness="2"
StrokeStartLineCap="Round">- < /Line>
如果想表示一些特殊類型的虛線,那么就需要為StrokeDashArray屬性設(shè)置多個(gè)數(shù)值了。
其Xaml代碼如下:
- < Line Grid.Row="1" X1="80" Y1="60"
X2="330" Y2="60" StrokeDashArray=
"4 2 1 2" Stroke="Blue" StrokeThickness=
"2" StrokeStartLineCap="Round">- < /Line>
在Silverlight Line對(duì)象應(yīng)用StrokeDashArray屬性時(shí)需要注意的是,其設(shè)置的數(shù)值并不是線段以及間隔的實(shí)際像素值,而是相對(duì)于StrokeThickness的倍數(shù)。