Color color = Colors.Red;//系统预定义颜色 SolidColorBrush brush = new SolidColorBrush(color);//方法1:通过构造函数传入颜色 Color color2 = Color.FromArgb(0xFF,0x00,0xFF,0x00);//通过ARGB值进行定义颜色 SolidColorBrush brush2= new SolidColorBrush(); brush2.Color = color2;//方法2:直接对颜色进行赋值 // 堆代码 duidaima.com Rectangle rectangle = new Rectangle(); rectangle.Width = 100; rectangle.Height = 100; rectangle.Fill = brush; rectangle.Stroke = brush2; rectangle.StrokeThickness = 1;上述C#代码使用XAML定义,如下所示:
<Rectangle Width="75" Height="75"> <Rectangle.Fill> <SolidColorBrush Color="Red" /> </Rectangle.Fill> </Rectangle>线性渐变画笔(LinearGradientBrush)
LinearGradientBrush linearGradientBrush = new LinearGradientBrush(); linearGradientBrush.GradientStops.Add(new GradientStop(Colors.Red, 0)); linearGradientBrush.GradientStops.Add(new GradientStop(Colors.Orange, 0.5)); linearGradientBrush.GradientStops.Add(new GradientStop(Colors.Yellow, 1)); Rectangle rectangle = new Rectangle(); rectangle.Width = 100; rectangle.Height = 100; rectangle.Fill = linearGradientBrush;说明:LinearGradientBrush的GradientStops属性是一个GradientStopCollection类型的对象,用来接收GradientStop对象,表示渐变的颜色列表。其中GradientStop有两个属性:Color颜色和offset偏移量。
<Rectangle Width="75" Height="75"> <Rectangle.Fill> <LinearGradientBrush> <GradientStop Color="Yellow" Offset="0.0" /> <GradientStop Color="Orange" Offset="0.5" /> <GradientStop Color="Red" Offset="1.0" /> </LinearGradientBrush> </Rectangle.Fill> </Rectangle>径向渐变画笔(RadialGradientBrush)
RadialGradientBrush radialGradientBrush = new RadialGradientBrush(); radialGradientBrush.GradientStops.Add(new GradientStop(Colors.Red, 0)); radialGradientBrush.GradientStops.Add(new GradientStop(Colors.Orange, 0.5)); radialGradientBrush.GradientStops.Add(new GradientStop(Colors.Yellow, 1)); radialGradientBrush.GradientOrigin = new Point(0, 0);//设置径向渐变的起始位置,默认为(0.5,0.5) Rectangle rectangle = new Rectangle(); rectangle.Width = 100; rectangle.Height = 100; rectangle.Fill = radialGradientBrush;上述C#代码使用XAML定义,如下所示:
<Rectangle Width="75" Height="75"> <Rectangle.Fill> <RadialGradientBrush GradientOrigin="0.75,0.25"> <GradientStop Color="Yellow" Offset="0.0" /> <GradientStop Color="Orange" Offset="0.5" /> <GradientStop Color="Red" Offset="1.0" /> </RadialGradientBrush> </Rectangle.Fill> </Rectangle>图像画笔(ImageBrush)
ImageBrush imageBrush = new ImageBrush(); imageBrush.ImageSource = new BitmapImage(new Uri(@"images\pinkcherries.jpg", UriKind.Relative)); Rectangle rectangle = new Rectangle(); rectangle.Width = 100; rectangle.Height = 100; rectangle.Fill = imageBrush;上述C#代码使用XAML定义,如下所示:
<Rectangle Width="75" Height="75"> <Rectangle.Fill> <ImageBrush ImageSource="sampleImages\pinkcherries.jpg" /> </Rectangle.Fill> </Rectangle>其中ImageSource是abstract修饰的抽象类,其派生类非常多,如下所示:
Rectangle rectangle = new Rectangle(); rectangle.Width = 75; rectangle.Height = 75; // Create a DrawingBrush and use it to // paint the rectangle. DrawingBrush myBrush = new DrawingBrush(); GeometryDrawing backgroundSquare = new GeometryDrawing( Brushes.White, null, new RectangleGeometry(new Rect(0, 0, 100, 100))); GeometryGroup g = new GeometryGroup(); g.Children.Add(new RectangleGeometry(new Rect(0, 0, 50, 50))); g.Children.Add(new RectangleGeometry(new Rect(50, 50, 50, 50))); LinearGradientBrush brush = new LinearGradientBrush(); brush.GradientStops.Add(new GradientStop(Colors.Black, 0.0)); brush.GradientStops.Add(new GradientStop(Colors.Gray, 1.0)); GeometryDrawing checkers = new GeometryDrawing(brush, null, g); DrawingGroup checkersGroup = new DrawingGroup(); checkersGroup.Children.Add(backgroundSquare); checkersGroup.Children.Add(checkers); myBrush.Drawing = checkersGroup; myBrush.Viewport = new Rect(0, 0, 0.25, 0.25); myBrush.TileMode = TileMode.Tile; rectangle.Fill = myBrush;上述C#代码使用XAML定义,如下所示:
<Rectangle Width="75" Height="75"> <Rectangle.Fill> <DrawingBrush Viewport="0,0,0.25,0.25" TileMode="Tile"> <DrawingBrush.Drawing> <DrawingGroup> <GeometryDrawing Brush="White"> <GeometryDrawing.Geometry> <RectangleGeometry Rect="0,0,100,100" /> </GeometryDrawing.Geometry> </GeometryDrawing> <GeometryDrawing> <GeometryDrawing.Geometry> <GeometryGroup> <RectangleGeometry Rect="0,0,50,50" /> <RectangleGeometry Rect="50,50,50,50" /> </GeometryGroup> </GeometryDrawing.Geometry> <GeometryDrawing.Brush> <LinearGradientBrush> <GradientStop Offset="0.0" Color="Black" /> <GradientStop Offset="1.0" Color="Gray" /> </LinearGradientBrush> </GeometryDrawing.Brush> </GeometryDrawing> </DrawingGroup> </DrawingBrush.Drawing> </DrawingBrush> </Rectangle.Fill> </Rectangle>在上述示例中,DrawingBrush的Drawing属性用来设置绘图画笔的内容。其中Drawing类型为abstract修饰的抽象类,其中GeometryDrawing为Drawing的派生类。
Rectangle rectangle = new Rectangle(); rectangle.Width = 75; rectangle.Height = 75; // Create a VisualBrush and use it // to paint the rectangle. VisualBrush myBrush = new VisualBrush(); // // Create the brush's contents. // StackPanel panel = new StackPanel(); // Create a DrawingBrush and use it to // paint the panel. DrawingBrush brush = new DrawingBrush(); GeometryGroup g = new GeometryGroup(); g.Children.Add(new RectangleGeometry(new Rect(0, 0, 50, 50))); g.Children.Add(new RectangleGeometry(new Rect(50, 50, 50, 50))); RadialGradientBrush checkerBrush = new RadialGradientBrush(); checkerBrush.GradientStops.Add(new GradientStop(Colors.MediumBlue, 0.0)); checkerBrush.GradientStops.Add(new GradientStop(Colors.White, 1.0)); GeometryDrawing checkers = new GeometryDrawing(checkerBrush, null, g); brush.Drawing = checkers; panel.Background = brush; // Create some text. TextBlock someText = new TextBlock(); someText.Text = "Hello, World"; FontSizeConverter converter = new FontSizeConverter(); someText.FontSize = (double)converter.ConvertFromString("10pt"); someText.Margin = new Thickness(10); panel.Children.Add(someText); myBrush.Visual = panel; rectangle.Fill = myBrush;上述C#代码使用XAML定义,如下所示:
<Rectangle Width="75" Height="75"> <Rectangle.Fill> <VisualBrush TileMode="Tile"> <VisualBrush.Visual> <StackPanel> <StackPanel.Background> <DrawingBrush> <DrawingBrush.Drawing> <GeometryDrawing> <GeometryDrawing.Brush> <RadialGradientBrush> <GradientStop Color="MediumBlue" Offset="0.0" /> <GradientStop Color="White" Offset="1.0" /> </RadialGradientBrush> </GeometryDrawing.Brush> <GeometryDrawing.Geometry> <GeometryGroup> <RectangleGeometry Rect="0,0,50,50" /> <RectangleGeometry Rect="50,50,50,50" /> </GeometryGroup> </GeometryDrawing.Geometry> </GeometryDrawing> </DrawingBrush.Drawing> </DrawingBrush> </StackPanel.Background> <TextBlock FontSize="10pt" Margin="10">Hello, World!</TextBlock> </StackPanel> </VisualBrush.Visual> </VisualBrush> </Rectangle.Fill> </Rectangle>预定义画笔