在Silverlight提供的諸多形狀對象中,Line對象無疑是最簡單的一個,源於此,大家很容易忽略掉Line對象的一些特色功能。例如下面提到的兩個應用技巧。
定義Line對象起點和終點的外觀
默認情況下,Line對象繪製的線條的起點和終點都是沒有樣式的,但可以通過StrokeStartLineCap、StrokeEndLineCap、StrokeDashCap屬性爲直線對象額外增加線帽樣式。其中前兩個屬性主要用於實線對象,其取值類型爲PenLineCap 枚舉(PenLineCap 枚舉的取值範圍見下表)。
所謂線帽是在直線的原有長度外,額外增加的圖形
成員名稱 說明
Flat 一個未超出直線上最後一點的線帽。等同於無線帽。
Square 一個高度等於直線粗細、長度等於直線粗細一半的矩形。
Round 一個直徑等於直線粗細的半圓形。
Triangle 一個底邊長度等於直線粗細的等腰直角三角形。
下面的示例顯示的就是設置不同的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>
實現虛線
通過Line對象繪製虛線效果,需要用到StrokeDashArray屬性,該屬性對應一個Double類型的集合。該集合的奇數位表示線段的長度,偶數位表示兩個線段之間的間隔長度。如果只是表示普通的虛線,則只需定義一個數值就可以了,默認會將該數值作爲線段跟間隔的長度。例如,下面的Xaml代碼就表示等一條等間距的虛線。
<Line Grid.Row="1" X1="80" Y1="30" X2="330" Y2="30" StrokeDashArray="4" Stroke="Blue" StrokeThickness="2" StrokeStartLineCap="Round"></Line>
如果想表示一些特殊類型的虛線,那麼就需要爲StrokeDashArray屬性設置多個數值了。
例如要實現下面這個類型的虛線
其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>
在應用StrokeDashArray屬性時需要注意的是,其設置的數值並不是線段以及間隔的實際像素值,而是相對於StrokeThickness的倍數。