[索引页]
[源码下载]
稳扎稳打Silverlight(8) - 2.0图形之基类System.Windows.Shapes.Shape
作者:
webabcd
介绍
Silverlight 2.0 图形:基类System.Windows.Shapes.Shape(Ellipse, Line, Path, Polygon, Polyline, Rectangle都继承自抽象类System.Windows.Shapes.Shape)。
Fill - 填充(System.Windows.Media.Brush类型)
Stroke - 笔触(System.Windows.Media.Brush类型)
StrokeThickness - 笔触尺寸
Stretch - 拉伸值 [System.Windows.Media.Stretch 枚举]
StrokeDashArray - 虚线和间隙的值的集合 [System.Windows.Media.Stretch 枚举]
StrokeDashCap - 虚线两端(线帽)的类型 [System.Windows.Media.PenLineCap 枚举]
StrokeStartLineCap - 虚线起始端(线帽)的类型 [System.Windows.Media.PenLineCap 枚举]
StrokeEndLineCap - 虚线终结端(线帽)的类型 [System.Windows.Media.PenLineCap 枚举]
StrokeDashOffset - 虚线的起始位置。从虚线的起始端的 StrokeDashOffset 距离处开始描绘虚线
StrokeLineJoin - 图形连接点处的连接类型 [System.Windows.Media.PenLineJoin 枚举]
StrokeMiterLimit - 斜接长度 与 StrokeThickness/2 的比值。默认值 10,最小值 1
在线DEMO
http://www.cnblogs.com/webabcd/archive/2008/10/09/1307486.html
示例
Shape.xaml
<
UserControl
x:Class
="Silverlight20.Shape.Shape"
xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
>
<
StackPanel
HorizontalAlignment
="Left"
>

<
Grid
Margin
="10"
HorizontalAlignment
="Left"
>
<!--
Fill - 填充(System.Windows.Media.Brush类型)
Stroke - 笔划(边框)(System.Windows.Media.Brush类型)
StrokeThickness - 笔划(边框)尺寸
-->
<
Rectangle
Width
="200"
Height
="50"
Fill
="Red"
Stroke
="Yellow"
StrokeThickness
="3"
/>
</
Grid
>
<
Grid
Width
="200"
Height
="200"
Margin
="10"
HorizontalAlignment
="Left"
ShowGridLines
="True"
>
<
Grid.RowDefinitions
>
<
RowDefinition
Height
="100"
/>
<
RowDefinition
Height
="100"
/>
</
Grid.RowDefinitions
>
<
Grid.ColumnDefinitions
>
<
ColumnDefinition
Width
="100"
/>
<
ColumnDefinition
Width
="100"
/>
</
Grid.ColumnDefinitions
>

<!--
Stretch属性 - 拉伸值 [System.Windows.Media.Stretch 枚举]
-->
<!--
Stretch.None - 不做处理
不做任何拉伸处理,填充内容保持原始大小
-->
<
Rectangle
Grid.Row
="0"
Grid.Column
="0"
Width
="80"
Height
="40"
Fill
="Red"
Stroke
="Yellow"
StrokeThickness
="6"
Stretch
="None"
/>
<!--
Stretch.Fill - 充满
调整填充内容,以充满整个容器,填充内容比例变为容器比例。默认值
-->
<
Rectangle
Grid.Row
="0"
Grid.Column
="1"
Width
="180"
Height
="40"
Fill
="Red"
Stroke
="Yellow"
StrokeThickness
="6"
Stretch
="Fill"
/>
<!--
Stretch.Uniform - 等比适应
调整填充内容,以适合容器尺寸,填充内容会做等比例调整
如果填充内容与容器比例不一样,那么填充内容调整的结果为:
使得填充内容的宽与容器的宽相等,或者 填充内容的高与容器的高相等。填充内容会被完整显示
-->
<
Rectangle
Grid.Row
="1"
Grid.Column
="0"
Width
="80"
Height
="40"
Fill
="Red"
Stroke
="Yellow"
StrokeThickness
="6"
Stretch
="Uniform"
/>
<!--
Stretch.UniformToFill - 等比充满
调整填充内容,以适合容器尺寸,填充内容会做等比例调整
如果填充内容与容器比例不一样,那么填充内容调整的结果为:
使得填充内容的宽与容器的宽相等,并且 填充内容的高与容器的高相等。填充内容会被做相应的剪裁
-->
<
Rectangle
Grid.Row
="1"
Grid.Column
="1"
Width
="80"
Height
="40"
Fill
="Red"
Stroke
="Yellow"
StrokeThickness
="6"
Stretch
="UniformToFill"
/>
</
Grid
>

<
Grid
Margin
="10"
HorizontalAlignment
="Left"
>
<
Grid.RowDefinitions
>
<
RowDefinition
Height
="20"
/>
<
RowDefinition
Height
="20"
/>
<
RowDefinition
Height
="20"
/>
<
RowDefinition
Height
="20"
/>
<
RowDefinition
Height
="20"
/>
<
RowDefinition
Height
="20"
/>
<
RowDefinition
Height
="20"
/>
</
Grid.RowDefinitions
>

<!--
StrokeDashArray - 虚线和间隙的值的集合 [System.Windows.Media.Stretch 枚举]
奇数项为虚线长度;偶数项为间隙长度;如果只有一个值,则虚线长度和间隙长度都为该值
-->
<
Line
Grid.Row
="0"
X1
="0"
Y1
="0"
X2
="400"
Y2
="0"
Stroke
="Red"
StrokeThickness
="10"
StrokeDashArray
="2"
/>
<!--
StrokeDashCap - 虚线两端(线帽)的类型 [System.Windows.Media.PenLineCap 枚举]
PenLineCap.Flat - 无。默认值
PenLineCap.Round - 直径等于 StrokeThickness
PenLineCap.Square - 高度等于 StrokeThickness 并且 宽度等于 StrokeThickness/2
PenLineCap.Triangle - 底边长等于 StrokeThickness 的等腰直角三角形
-->
<
Line
Grid.Row
="1"
X1
="0"
Y1
="0"
X2
="400"
Y2
="0"
Stroke
="Red"
StrokeThickness
="10"
StrokeDashArray
="2,4,6"
StrokeDashCap
="Flat"
/>
<
Line
Grid.Row
="2"
X1
="0"
Y1
="0"
X2
="400"
Y2
="0"
Stroke
="Red"
StrokeThickness
="10"
StrokeDashArray
="2,4,6"
StrokeDashCap
="Round"
/>
<
Line
Grid.Row
="2"
X1
="0"
Y1
="0"
X2
="400"
Y2
="0"
Stroke
="Black"
StrokeThickness
="10"
StrokeDashArray
="2,4,6"
StrokeDashCap
="Flat"
/>

<
Line
Grid.Row
="3"
X1
="0"
Y1
="0"
X2
="400"
Y2
="0"
Stroke
="Red"
StrokeThickness
="10"
StrokeDashArray
="2,4,6"
StrokeDashCap
="Square"
/>
<
Line
Grid.Row
="3"
X1
="0"
Y1
="0"
X2
="400"
Y2
="0"
Stroke
="Black"
StrokeThickness
="10"
StrokeDashArray
="2,4,6"
StrokeDashCap
="Flat"
/>

<
Line
Grid.Row
="4"
X1
="0"
Y1
="0"
X2
="400"
Y2
="0"
Stroke
="Red"
StrokeThickness
="10"
StrokeDashArray
="2,4,6"
StrokeDashCap
="Triangle"
/>
<
Line
Grid.Row
="4"
X1
="0"
Y1
="0"
X2
="400"
Y2
="0"
Stroke
="Black"
StrokeThickness
="10"
StrokeDashArray
="2,4,6"
StrokeDashCap
="Flat"
/>
<!--
StrokeStartLineCap - 虚线起始端(线帽)的类型 [System.Windows.Media.PenLineCap 枚举]
StrokeEndLineCap - 虚线终结端(线帽)的类型 [System.Windows.Media.PenLineCap 枚举]
-->
<
Line
Grid.Row
="5"
X1
="0"
Y1
="0"
X2
="400"
Y2
="0"
Stroke
="Red"
StrokeThickness
="10"
StrokeDashArray
="2,4,6"
StrokeStartLineCap
="Square"
StrokeEndLineCap
="Triangle"
/>
<
Line
Grid.Row
="5"
X1
="0"
Y1
="0"
X2
="400"
Y2
="0"
Stroke
="Black"
StrokeThickness
="10"
StrokeDashArray
="2,4,6"
StrokeDashCap
="Flat"
/>
<!--
StrokeDashOffset - 虚线的起始位置。从虚线的起始端的 StrokeDashOffset 距离处开始描绘虚线
-->
<
Line
Grid.Row
="6"
X1
="0"
Y1
="0"
X2
="400"
Y2
="0"
Stroke
="Red"
StrokeThickness
="10"
StrokeDashArray
="2,4,6"
StrokeDashOffset
="1"
/>

</
Grid
>

<
Grid
Margin
="10"
HorizontalAlignment
="Left"
ShowGridLines
="True"
>
<
Grid.ColumnDefinitions
>
<
ColumnDefinition
Width
="120"
/>
<
ColumnDefinition
Width
="120"
/>
<
ColumnDefinition
Width
="120"
/>
</
Grid.ColumnDefinitions
>

<!--
StrokeLineJoin属性 - 图形连接点处的连接类型 [System.Windows.Media.PenLineJoin 枚举]
-->

<!--
StrokeLineJoin.Bevel - 线形连接
-->
<
Polyline
Grid.Column
="0"
Points
="10,100 50,10 100,100"
Stroke
="Red"
StrokeThickness
="20"
HorizontalAlignment
="Center"
StrokeLineJoin
="Bevel"
/>

<!--
StrokeLineJoin.Miter - 角形连接。默认值
-->
<
Polyline
Grid.Column
="1"
Points
="10,100 50,10 100,100"
Stroke
="Red"
StrokeThickness
="20"
HorizontalAlignment
="Center"
StrokeLineJoin
="Miter"
/>

<!--
StrokeLineJoin.Round - 弧形连接
-->
<
Polyline
Grid.Column
="2"
Points
="10,100 50,10 100,100"
Stroke
="Red"
StrokeThickness
="20"
HorizontalAlignment
="Center"
StrokeLineJoin
="Round"
/>
</
Grid
>

<
Grid
Margin
="10"
HorizontalAlignment
="Left"
ShowGridLines
="True"
>
<
Grid.ColumnDefinitions
>
<
ColumnDefinition
Width
="120"
/>
<
ColumnDefinition
Width
="120"
/>
<
ColumnDefinition
Width
="120"
/>
</
Grid.ColumnDefinitions
>
<!--
StrokeMiterLimit属性 - 斜接长度(蓝色线部分)与 StrokeThickness/2 的比值。默认值 10,最小值 1
-->

<
Polyline
Grid.Column
="0"
Points
="0,100 50,10 100,100"
Stroke
="Red"
StrokeThickness
="20"
StrokeMiterLimit
="1"
/>
<
Line
Grid.Column
="0"
X1
="0"
Y1
="100"
X2
="50"
Y2
="10"
Stroke
="Yellow"
/>
<
Line
Grid.Column
="0"
X1
="50"
Y1
="10"
X2
="100"
Y2
="100"
Stroke
="Yellow"
/>
<
Line
Grid.Column
="0"
X1
="50"
Y1
="10"
X2
="50"
Y2
="0"
Stroke
="Blue"
/>

<
Polyline
Grid.Column
="1"
Points
="0,100 50,10 100,100"
Stroke
="Red"
StrokeThickness
="20"
StrokeMiterLimit
="2.0"
/>
<
Line
Grid.Column
="1"
X1
="0"
Y1
="100"
X2
="50"
Y2
="10"
Stroke
="Yellow"
/>
<
Line
Grid.Column
="1"
X1
="50"
Y1
="10"
X2
="100"
Y2
="100"
Stroke
="Yellow"
/>
<
Line
Grid.Column
="1"
X1
="50"
Y1
="10"
X2
="50"
Y2
="-10"
Stroke
="Blue"
/>

<
Polyline
Grid.Column
="2"
Points
="0,100 50,10 100,100"
Stroke
="Red"
StrokeThickness
="20"
/>
<
Line
Grid.Column
="2"
X1
="0"
Y1
="100"
X2
="50"
Y2
="10"
Stroke
="Yellow"
/>
<
Line
Grid.Column
="2"
X1
="50"
Y1
="10"
X2
="100"
Y2
="100"
Stroke
="Yellow"
/>
<
Line
Grid.Column
="2"
X1
="50"
Y1
="10"
X2
="50"
Y2
="-10"
Stroke
="Blue"
/>
</
Grid
>

</
StackPanel
>
</
UserControl
>
OK
[源码下载]