首页 > 代码库 > Silverlight学习(五)图形标绘
Silverlight学习(五)图形标绘
Silverlight中进行图形标绘的方法太多了,这里的标绘和Arcgis中的标绘不同,这里大多是静态的标绘。标绘的方法主要有Path(路径标记法)、直接标绘(Line等)、几何标记(LineGeometry等)。
1.路径标记法
路径标记在silverlight中是非常重要的一种标绘方法,通过路径标记,我们可以标绘多种形状的曲线或者直线。下面直接直接上代码。
1 <Path Stroke="Blue" Data="M 0,0 L 0,0 10,10 20,20 50,50"></Path> 2 <Path Stroke="Red" Data="M 50,50 H 60 80 150"></Path> 3 <Path Stroke="Green" Data="M 150,50 V 50 150"></Path> 4 5 <Path Stroke="GreenYellow" Data="M 100,200 C 100,25 400,350 400,175 H 280" StrokeThickness="3"></Path>
路径标绘一般通过<Path Data=""/>,在Data中是标绘的主要部分,M代表起始点,点的表示形式为(x,y),L表直线,H表示水平线,V表示垂直线,C表示三次方贝塞尔曲线。若图形需要封闭,用Z表示结束。Stroke表示轮廓线的颜色。StrokeThickness是指线段的宽度。
2.图表标绘
silverlight中提供了Line、PolyLine、Polygon、Eclipse、Rectangle等几种标绘类型。
Line,可以在画布中画一条直线,需要制定起点(X1,Y1),终点(X2,Y2),线的颜色和线的宽度等。
PolyLine,是多段线,需要指定它的Points,Points是点的集合。
Polygon,是多边形,同样需要指定Points。
Eclipse是椭圆。。。
Rectangle是矩形。在这里需要讲讲颜色的渐变。silverlight中包含两种渐变方式:LinearGradientBrush和RadialGradientBrush。
LinearGradientBrush是指线性渐变,它可以演化为多种渐变方式,比如水平渐变、垂直渐变、斜线渐变。
1 <Rectangle Width="200" Height="50" Canvas.Left="100" Canvas.Top="250"> 2 <Rectangle.Fill> 3 <LinearGradientBrush StartPoint="0,0" EndPoint="1,1"> 4 <GradientStop Color="Yellow" Offset="0.0"></GradientStop> 5 <GradientStop Color="Red" Offset="0.25"></GradientStop> 6 <GradientStop Color="Blue" Offset="0.75"></GradientStop> 7 <GradientStop Color="LimeGreen" Offset="1.0"></GradientStop> 8 </LinearGradientBrush> 9 </Rectangle.Fill> 10 </Rectangle>
斜线渐变也就是设置直线的起点(0,0),终点(1,1)。
1 <Rectangle Width="200" Height="50" Canvas.Left="50" Canvas.Top="310"> 2 <Rectangle.Fill> 3 <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5"> 4 <GradientStop Color="Yellow" Offset="0.0"></GradientStop> 5 <GradientStop Color="Red" Offset="0.25"></GradientStop> 6 <GradientStop Color="Blue" Offset="0.75"></GradientStop> 7 <GradientStop Color="LimeGreen" Offset="1.0"></GradientStop> 8 </LinearGradientBrush> 9 </Rectangle.Fill> 10 </Rectangle>
水平渐变设置起点(0,0.5),终点(1,0.5),水平渐变需要保证Y轴的值无变化
1 <Rectangle Width="200" Height="50" Canvas.Left="300" Canvas.Top="300"> 2 <Rectangle.Fill> 3 <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1"> 4 <GradientStop Color="Yellow" Offset="0.0"></GradientStop> 5 <GradientStop Color="Red" Offset="0.25"></GradientStop> 6 <GradientStop Color="Blue" Offset="0.75"></GradientStop> 7 <GradientStop Color="LimeGreen" Offset="1.0"></GradientStop> 8 </LinearGradientBrush> 9 </Rectangle.Fill> 10 </Rectangle>
垂直渐变需要保证的是x轴的值无变化,比如设置起点(0.5,0),终点(0.5,1)。
RadialGradientBrush是径向渐变的方式,它从一个中心点,以圆的方式渐变颜色。
1 Rectangle Width="50" Height="50" Canvas.Left="150" Canvas.Top="200"> 2 <Rectangle.Fill> 3 <RadialGradientBrush Center="0.5,0.5" GradientOrigin="0.5,0.5"> 4 <GradientStop Color="Yellow" Offset="0"></GradientStop> 5 <GradientStop Color="Red" Offset="0.25"></GradientStop> 6 <GradientStop Color="Blue" Offset="0.75"></GradientStop> 7 <GradientStop Color="LimeGreen" Offset="1.0"></GradientStop> 8 </RadialGradientBrush> 9 </Rectangle.Fill> 10 </Rectangle>
这里需要设置Centetr 和GradientOrigin,center是中心点,Gradient是径向渐变轴的起点。
3.几何标绘
几何标绘通过LineGeometry、EllipseGeometry、RectangleGeometry等。通过几何标绘,我们可以标绘复杂的图形。这里不做详细说明。
本来是打算结合Blend来写的,但是由于时间太过仓促,没有在blend中实现。只有下次完成了。。