Silverlight画笔
纯色绘制区域
使用纯色绘制区域,下面的代码是绘制一个红色的长方形:
<StackPanel>
<Rectangle Fill="#FFFF0000" Width="200" Height="100"></Rectangle>
</StackPanel>
或
<Rectangle Width="200" Height="100">
<Rectangle.Fill>
<SolidColorBrush Color="Red"></SolidColorBrush>
</Rectangle.Fill>
</Rectangle>
效果如下:

绘制渐变区域
渐变画笔使用沿一条轴彼此混合的多种颜色绘制区域。可以使用它们来形成光和影的效果,使 UI 元素具有三维外观。还可以使用它们来模拟玻璃、镶边、水和其他光滑表面。Silverlight 提供两种类型的渐变画笔:LinearGradientBrush 和 RadialGradientBrush。
下面的例子使用LinearGradientBrush从左上角到右下角形成了一个渐变区域:
<Rectangle Width="200" Height="100" Margin="10">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="White" Offset="0.0"></GradientStop>
<GradientStop Color="WhiteSmoke" Offset="0.25"></GradientStop>
<GradientStop Color="Gray" Offset="0.75"></GradientStop>
<GradientStop Color="Black" Offset="1"></GradientStop>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
效果如图:

代码是的“Offset”是指从StartPoint="0,0" 到EndPoint="1,1"这条线上的偏移量。如0.25指直线上1/4处。
上例的渐变轴是对角线,如果要将渐变轴设置为模向,则应作如下设置:
StartPoint="0,0.5" EndPoint="1,0.5"
纵向应该设置为:StartPoint="0.5,0" EndPoint="0.5,1"
径向渐变
与 LinearGradientBrush 类似,RadialGradientBrush 用沿一条轴混合在一起的颜色绘制区域。前面的示例演示线性渐变画笔的轴是一条直线。径向渐变画笔的轴由一个圆圈定义;其颜色从圆圈的原点向外辐射。
在下面的示例中,用径向渐变画笔绘制矩形内部。
<Rectangle Width="200" Height="100" Margin="10">
<Rectangle.Fill>
<RadialGradientBrush GradientOrigin="0.5,0.5" Center="0.5,0.5" RadiusX="0.5" RadiusY="0.5">
<GradientStop Color="Yellow" Offset="0"></GradientStop>
<GradientStop Color="YellowGreen" Offset="0.25"></GradientStop>
<GradientStop Color="Blue" Offset="0.5"></GradientStop>
<GradientStop Color="DarkBlue" Offset="1"></GradientStop>
</RadialGradientBrush>
</Rectangle.Fill>
</Rectangle>
运行界面如图:

GradientOrigin 指定径向渐变画笔的渐变轴的起点。渐变轴从渐变原点辐射至渐变圆。画笔的渐变圆由其 Center、RadiusX 和 RadiusY 属性定义。
下图显示了具有不同的 GradientOrigin、Center、RadiusX 和 RadiusY 设置的多个径向渐变。
绘制图像
ImageBrush 类支持您将图像用作填充、背景和轮廓。ImageBrush 使用由 ImageSource 属性指定的 JPEG 或 PNG 图像来绘制区域。使用要加载的图像的路径来设置 ImageSource 属性。
默认情况下,ImageBrush 会将其图像拉伸以完全充满要绘制的区域,如果绘制的区域和该图像的长宽比不同,则可能会扭曲该图像。您可以通过将 Stretch 属性从默认值 Fill 更改为 None、Uniform 或 UniformToFill 来更改此行为。
以下示例使用 ImageBrush 绘制 Canvas 的 Background。
<Grid x:Name="LayoutRoot">
<Grid.Background>
<ImageBrush ImageSource="Avata1.JPG"></ImageBrush>
</Grid.Background>
</Grid>
运行界面如下:


浙公网安备 33010602011771号