silverlight动画

SolidColorBrush

使用纯色绘制区域。

 

名称

说明

 

Color

获取或设置此 SolidColorBrush 的颜色。

 

Dispatcher

获取与此对象关联的 Dispatcher (继承自 DependencyObject。)

 

Opacity

获取或设置 Brush 的不透明度。 (继承自 Brush。)

 

RelativeTransform

获取或设置要使用相对坐标应用于画笔的变换。 (继承自 Brush。)

 

Transform

获取或设置应用于画笔的变换。 (继承自 Brush。)

LinearGradientBrush- 线性渐变画笔

LinearGradientBrush 使用线性渐变绘制区域。线性渐变沿直线定义渐变。该直线的终点由线性渐变的 StartPoint EndPoi nt 属性定义。LinearGradientBrush 画笔沿此直线绘制其 GradientStops

默认的线性渐变是沿对角方向进行的。默认情况下,线性渐变的 StartPoint 是被绘制区域的左上角 (0,0),其 EndPoint 是被绘制区域的右下角 (1,1)。所得渐变的颜色是沿着对角方向路径插入的。

下面的插图显示了对角方向的渐变。图中添加了一条线,用于突出显示渐变从起点到终点的插值路径。

对角方向的线性渐变


下一幅插图显示的是同一线性渐变,但它具有突出显示的渐变停止点。

具有突出显示的渐变停止点的对角线性渐变


可以指定未完全填充所绘制区域的渐变轴。出现这种情况时, SpreadMethod 属性确定其余区域的绘制方式。

Freezable 功能

LinearGradientBrush 是一种 Freezable 对象,因此可以将其冻结以提高性能。有关 Freezable 功能(例如冻结和克隆)的信息,请参见 Freezable 对象概述

 示例

本示例演示如何使用 LinearGradientBrush 类来绘制带有线性渐变的区域。在下面的示例中, Rectangle Fill 是用从黄色依次过渡到红色、蓝色和浅绿色的对角线性渐变来绘制的。

XAML

 

复制代码

<!-- This rectangle is painted with a diagonal linear gradient. -->

<Rectangle Width="200" Height="100">

 <Rectangle.Fill>

    <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">

      <GradientStop Color="Yellow" Offset="0.0" />

      <GradientStop Color="Red" Offset="0.25" />

      <GradientStop Color="Blue" Offset="0.75" />

      <GradientStop Color="LimeGreen" Offset="1.0" />

    </LinearGradientBrush>

 </Rectangle.Fill>

</Rectangle>

C#

 

复制代码

Rectangle diagonalFillRectangle = new Rectangle();

diagonalFillRectangle.Width = 200;

diagonalFillRectangle.Height = 100;

 

// Create a diagonal linear gradient with four stops.  

LinearGradientBrush myLinearGradientBrush =

    new LinearGradientBrush();

myLinearGradientBrush.StartPoint = new Point(0,0);

myLinearGradientBrush.EndPoint = new Point(1,1);

myLinearGradientBrush.GradientStops.Add(

    new GradientStop(Colors.Yellow, 0.0));

myLinearGradientBrush.GradientStops.Add(

    new GradientStop(Colors.Red, 0.25));               

myLinearGradientBrush.GradientStops.Add(

    new GradientStop(Colors.Blue, 0.75));       

myLinearGradientBrush.GradientStops.Add(

    new GradientStop(Colors.LimeGreen, 1.0));

 

// Use the brush to paint the rectangle.

diagonalFillRectangle.Fill = myLinearGradientBrush;

下图显示了上一示例创建的渐变。

 

若要创建水平线性渐变,请将 LinearGradientBrush StartPoint EndPoint 分别改为 (0,0.5) (1,0.5)。在下面的示例中, Rectangle 是用水平线性渐变来绘制的。

 

RadialGradientBrush - 放射性渐变画笔

   属性

 

名称

说明

 

CanFreeze

获取一个值,该值指示是否可将对象变为不可修改。 (继承自 Freezable。)

 

Center

获取或设置径向渐变最外面的圆的圆心。

 

ColorInterpolationMode

获取或设置一个 ColorInterpolationMode 枚举,该枚举指定内插渐变颜色的方式。 这是一个依赖项属性。 (继承自 GradientBrush。)

 

DependencyObjectType

获取对此实例的 CLR 类型进行包装的 DependencyObjectType (继承自 DependencyObject。)

 

Dispatcher

获取与此 DispatcherObject 关联的 Dispatcher (继承自 DispatcherObject。)

 

GradientOrigin

获取或设置定义渐变开始的二维焦点的位置。

 

GradientStops

获取或设置画笔的渐变停止点。 (继承自 GradientBrush。)

 

HasAnimatedProperties

获取一个值,该值指示一个或多个 AnimationClock 对象是否与此对象的任何依赖项属性相关联。 (继承自 Animatable。)

 

IsFrozen

获取一个值,该值指示对象当前是否可修改。 (继承自 Freezable。)

 

IsSealed

获取一个值,该值声明此实例当前是否为只读。 (继承自 DependencyObject。)

 

MappingMode

获取或设置一个 BrushMappingMode 枚举,该枚举指定渐变画笔的定位坐标相对于输出区域是绝对的还是相对的。 这是一个依赖项属性。 (继承自 GradientBrush。)

 

Opacity

获取或设置 Brush 的不透明度。 (继承自 Brush。)

 

RadiusX

获取或设置径向渐变最外面的圆的水平半径。

 

RadiusY

获取或设置径向渐变最外面的圆的垂直半径。

 

RelativeTransform

获取或设置要使用相对坐标应用于画笔的变换。 (继承自 Brush。)

 

SpreadMethod

获取或设置扩展方法的类型,该类型指定如何在要绘制对象的边界内绘制开始或结束的渐变。 (继承自 GradientBrush。)

 

Transform

获取或设置应用于画笔的变换。此变换在完成画笔输出的映射和定位后应用。 (继承自 Brush。)

 

  使用径向渐变绘制区域。焦点定义渐变的开始,而圆定义渐变的终点下面的示例使用 RadialGradientBrush 来绘制一个具有径向渐变的矩形,此渐变从黄色依次过渡到红色、蓝色和浅绿色。

C#

 

复制代码

using System;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Animation;

using System.Windows.Shapes;

 

namespace BrushesIntroduction

{

    public class RadialGradientBrushSnippet : Page

    {

        public RadialGradientBrushSnippet()

        {

            Title = "RadialGradientBrush Example";

            Background = Brushes.White;

            Margin = new Thickness(20);

 

            //

            // Create a RadialGradientBrush with four gradient stops.

            //

            RadialGradientBrush radialGradient = new RadialGradientBrush();

 

            // Set the GradientOrigin to the center of the area being painted.

            radialGradient.GradientOrigin = new Point(0.5, 0.5);

 

            // Set the gradient center to the center of the area being painted.

            radialGradient.Center = new Point(0.5, 0.5);

 

            // Set the radius of the gradient circle so that it extends to

            // the edges of the area being painted.

            radialGradient.RadiusX = 0.5;

            radialGradient.RadiusY = 0.5;

 

            // Create four gradient stops.

            radialGradient.GradientStops.Add(new GradientStop(Colors.Yellow, 0.0));

            radialGradient.GradientStops.Add(new GradientStop(Colors.Red, 0.25));

            radialGradient.GradientStops.Add(new GradientStop(Colors.Blue, 0.75));

            radialGradient.GradientStops.Add(new GradientStop(Colors.LimeGreen, 1.0));

 

            // Freeze the brush (make it unmodifiable) for performance benefits.

            radialGradient.Freeze();

 

            // Create a rectangle and paint it with the

            // RadialGradientBrush.

            Rectangle aRectangle = new Rectangle();

            aRectangle.Width = 200;

            aRectangle.Height = 100;

            aRectangle.Fill = radialGradient;

 

            StackPanel mainPanel = new StackPanel();

            mainPanel.Children.Add(aRectangle);

            Content = mainPanel;

 

        }

 

    }

}

 

 

XAML

 

复制代码

<Page

 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

 Title="RadialGradientBrush Example"

 Background="White" Margin="20">

 <StackPanel>

 

    <!-- This rectangle is painted with a radial gradient. -->

    <Rectangle Width="200" Height="100">

      <Rectangle.Fill>

        <RadialGradientBrush

          GradientOrigin="0.5,0.5"

          Center="0.5,0.5" RadiusX="0.5" RadiusY="0.5">

          <RadialGradientBrush.GradientStops>

            <GradientStop Color="Yellow" Offset="0" />

            <GradientStop Color="Red" Offset="0.25" />

            <GradientStop Color="Blue" Offset="0.75" />

            <GradientStop Color="LimeGreen" Offset="1" />

          </RadialGradientBrush.GradientStops>

        </RadialGradientBrush>

      </Rectangle.Fill>

    </Rectangle>

 </StackPanel>

</Page>

下图显示了上述示例中的渐变。其中突出显示了渐变的停止点。

 

说明:

本主题中的示例使用默认坐标系来设置控制点。默认坐标系是相对于边界框的:0 表示边界框的 0%1 表示边界框的 100%。可以通过将 MappingMode 属性设置为值 Absolute 来更改此坐标系。绝对坐标系不是相对于边界框的。值直接在本地坐标系中解释。

 

posted @ 2009-09-20 20:37  Blue Sky ......  阅读(282)  评论(0编辑  收藏  举报