不可不知的WPF画笔(Brush)

打印 上一主题 下一主题

主题 696|帖子 696|积分 2088

在WPF中,屏幕上的所有内容,都是通过画笔(Brush)画上去的。如按钮的背景色,边框,文本框的远景和形状填充。借助画笔,可以绘制页面上的所有UI对象。不同画笔具有不同类型的输出( 如:某些画笔利用纯色绘制区域,其他画笔利用渐变、图案、图像或绘图)。

Brush位于System.Windows.Media命名空间,Brush是一个abstract修饰的抽象类,所以必须利用其派生类。
 
纯色画笔(SolidColorBrush)

 
SolidColorBrush利用纯Color绘制区域,有多种方法可以制定纯色画笔的颜色,如利用A(Alpha)R(红色)G(绿色)B(蓝色)颜色通道来定义颜色,或者利用体系预定义颜色。
SolidColorBrush可以通过构造函数进行赋值,接收一个Color类型的参数。或者通过Color属性进行赋值。如下所示:
  1. Color color = Colors.Red;//系统预定义颜色
  2. SolidColorBrush brush = new SolidColorBrush(color);//方法1:通过构造函数传入颜色
  3. Color color2 = Color.FromArgb(0xFF,0x00,0xFF,0x00);//通过ARGB值进行定义颜色
  4. SolidColorBrush brush2= new SolidColorBrush();
  5. brush2.Color = color2;//方法2:直接对颜色进行赋值
  6. Rectangle rectangle = new Rectangle();
  7. rectangle.Width = 100;
  8. rectangle.Height = 100;
  9. rectangle.Fill = brush;
  10. rectangle.Stroke = brush2;
  11. rectangle.StrokeThickness = 1;
复制代码
上述C#代码利用XAML定义,如下所示:
  1. <Rectangle Width="75" Height="75">
  2.   <Rectangle.Fill>
  3.     <SolidColorBrush Color="Red" />
  4.   </Rectangle.Fill>
  5. </Rectangle>
复制代码
 
线性渐变画笔(LinearGradientBrush)

 
LinearGradientBrush利用线性渐变色彩绘制图形,线性渐变在一根线条(渐变轴)中混合了两种或更多颜色。可以利用 GradientStop 对象指定渐变的颜色及其位置。
  1. LinearGradientBrush linearGradientBrush = new LinearGradientBrush();
  2. linearGradientBrush.GradientStops.Add(new GradientStop(Colors.Red, 0));
  3. linearGradientBrush.GradientStops.Add(new GradientStop(Colors.Orange, 0.5));
  4. linearGradientBrush.GradientStops.Add(new GradientStop(Colors.Yellow, 1));
  5. Rectangle rectangle = new Rectangle();
  6. rectangle.Width = 100;
  7. rectangle.Height = 100;
  8. rectangle.Fill = linearGradientBrush;
复制代码
说明:LinearGradientBrush的GradientStops属性是一个GradientStopCollection类型的对象,用来接收GradientStop对象,表示渐变的颜色列表。其中GradientStop有两个属性:Color颜色和offset偏移量。
上述C#代码利用XAML定义,如下所示:
  1. <Rectangle Width="75" Height="75">
  2.   <Rectangle.Fill>
  3.     <SolidColorBrush Color="Red" />
  4.   </Rectangle.Fill>
  5. </Rectangle><Rectangle Width="75" Height="75">
  6.   <Rectangle.Fill>
  7.     <SolidColorBrush Color="Red" />
  8.   </Rectangle.Fill>
  9. </Rectangle><Rectangle Width="75" Height="75">
  10.   <Rectangle.Fill>
  11.     <SolidColorBrush Color="Red" />
  12.   </Rectangle.Fill>
  13. </Rectangle>      
复制代码
 
径向渐变画笔(RadialGradientBrush)

RadialGradientBrush利用径向渐变绘制区域,径向渐变将两种或多种颜色混合在一个圆圈中,由里向外进行扩散。 与 LinearGradientBrush 类一样,可以利用 GradientStop 对象指定渐变的颜色及其位置。
  1. RadialGradientBrush radialGradientBrush = new RadialGradientBrush();
  2. radialGradientBrush.GradientStops.Add(new GradientStop(Colors.Red, 0));
  3. radialGradientBrush.GradientStops.Add(new GradientStop(Colors.Orange, 0.5));
  4. radialGradientBrush.GradientStops.Add(new GradientStop(Colors.Yellow, 1));
  5. radialGradientBrush.GradientOrigin = new Point(0, 0);//设置径向渐变的起始位置,默认为(0.5,0.5)
  6. Rectangle rectangle = new Rectangle();
  7. rectangle.Width = 100;
  8. rectangle.Height = 100;
  9. rectangle.Fill = radialGradientBrush;
复制代码
上述C#代码利用XAML定义,如下所示:
  1. <Rectangle Width="75" Height="75">
  2.   <Rectangle.Fill>
  3.     <SolidColorBrush Color="Red" />
  4.   </Rectangle.Fill>
  5. </Rectangle><Rectangle Width="75" Height="75">
  6.   <Rectangle.Fill>
  7.     <SolidColorBrush Color="Red" />
  8.   </Rectangle.Fill>
  9. </Rectangle><Rectangle Width="75" Height="75">
  10.   <Rectangle.Fill>
  11.     <SolidColorBrush Color="Red" />
  12.   </Rectangle.Fill>
  13. </Rectangle>      
复制代码
 
图像画笔(ImageBrush)

ImageBrush 利用 ImageSource 绘制区域。
  1. ImageBrush imageBrush = new ImageBrush();
  2. imageBrush.ImageSource =
  3. new BitmapImage(new Uri(@"images\pinkcherries.jpg", UriKind.Relative));
  4. Rectangle rectangle = new Rectangle();
  5. rectangle.Width = 100;
  6. rectangle.Height = 100;
  7. rectangle.Fill = imageBrush;
复制代码
上述C#代码利用XAML定义,如下所示:
  1. <Rectangle Width="75" Height="75">
  2.   <Rectangle.Fill>
  3.     <SolidColorBrush Color="Red" />
  4.   </Rectangle.Fill>
  5. </Rectangle>
复制代码
其中ImageSource是abstract修饰的抽象类,其派生类非常多,如下所示:


 
绘图画笔(DrawingBrush)

DrawingBrush 利用 Drawing 绘制区域。 Drawing 可以包含形状、图像、文本和媒体。
  1. Rectangle rectangle = new Rectangle();
  2. rectangle.Width = 75;
  3. rectangle.Height = 75;
  4. // Create a DrawingBrush and use it to
  5. // paint the rectangle.
  6. DrawingBrush myBrush = new DrawingBrush();
  7. GeometryDrawing backgroundSquare =
  8.   new GeometryDrawing(
  9.     Brushes.White,
  10.     null,
  11.     new RectangleGeometry(new Rect(0, 0, 100, 100)));
  12. GeometryGroup g = new GeometryGroup();
  13. g.Children.Add(new RectangleGeometry(new Rect(0, 0, 50, 50)));
  14. g.Children.Add(new RectangleGeometry(new Rect(50, 50, 50, 50)));
  15. LinearGradientBrush brush = new LinearGradientBrush();
  16. brush.GradientStops.Add(new GradientStop(Colors.Black, 0.0));
  17. brush.GradientStops.Add(new GradientStop(Colors.Gray, 1.0));
  18. GeometryDrawing checkers = new GeometryDrawing(brush, null, g);
  19. DrawingGroup checkersGroup = new DrawingGroup();
  20. checkersGroup.Children.Add(backgroundSquare);
  21. checkersGroup.Children.Add(checkers);
  22. myBrush.Drawing = checkersGroup;
  23. myBrush.Viewport = new Rect(0, 0, 0.25, 0.25);
  24. myBrush.TileMode = TileMode.Tile;
  25. rectangle.Fill = myBrush;
复制代码
上述C#代码利用XAML定义,如下所示:
  1. <Rectangle Width="75" Height="75">
  2.   <Rectangle.Fill>
  3.     <SolidColorBrush Color="Red" />
  4.   </Rectangle.Fill>
  5. </Rectangle><Rectangle Width="75" Height="75">
  6.   <Rectangle.Fill>
  7.     <SolidColorBrush Color="Red" />
  8.   </Rectangle.Fill>
  9. </Rectangle><Rectangle Width="75" Height="75">
  10.   <Rectangle.Fill>
  11.     <SolidColorBrush Color="Red" />
  12.   </Rectangle.Fill>
  13. </Rectangle><Rectangle Width="75" Height="75">
  14.   <Rectangle.Fill>
  15.     <SolidColorBrush Color="Red" />
  16.   </Rectangle.Fill>
  17. </Rectangle><Rectangle Width="75" Height="75">
  18.   <Rectangle.Fill>
  19.     <SolidColorBrush Color="Red" />
  20.   </Rectangle.Fill>
  21. </Rectangle><Rectangle Width="75" Height="75">
  22.   <Rectangle.Fill>
  23.     <SolidColorBrush Color="Red" />
  24.   </Rectangle.Fill>
  25. </Rectangle><Rectangle Width="75" Height="75">
  26.   <Rectangle.Fill>
  27.     <SolidColorBrush Color="Red" />
  28.   </Rectangle.Fill>
  29. </Rectangle><Rectangle Width="75" Height="75">
  30.   <Rectangle.Fill>
  31.     <SolidColorBrush Color="Red" />
  32.   </Rectangle.Fill>
  33. </Rectangle><Rectangle Width="75" Height="75">
  34.   <Rectangle.Fill>
  35.     <SolidColorBrush Color="Red" />
  36.   </Rectangle.Fill>
  37. </Rectangle><Rectangle Width="75" Height="75">
  38.   <Rectangle.Fill>
  39.     <SolidColorBrush Color="Red" />
  40.   </Rectangle.Fill>
  41. </Rectangle><Rectangle Width="75" Height="75">
  42.   <Rectangle.Fill>
  43.     <SolidColorBrush Color="Red" />
  44.   </Rectangle.Fill>
  45. </Rectangle><Rectangle Width="75" Height="75">
  46.   <Rectangle.Fill>
  47.     <SolidColorBrush Color="Red" />
  48.   </Rectangle.Fill>
  49. </Rectangle><Rectangle Width="75" Height="75">
  50.   <Rectangle.Fill>
  51.     <SolidColorBrush Color="Red" />
  52.   </Rectangle.Fill>
  53. </Rectangle><Rectangle Width="75" Height="75">
  54.   <Rectangle.Fill>
  55.     <SolidColorBrush Color="Red" />
  56.   </Rectangle.Fill>
  57. </Rectangle><Rectangle Width="75" Height="75">
  58.   <Rectangle.Fill>
  59.     <SolidColorBrush Color="Red" />
  60.   </Rectangle.Fill>
  61. </Rectangle><Rectangle Width="75" Height="75">
  62.   <Rectangle.Fill>
  63.     <SolidColorBrush Color="Red" />
  64.   </Rectangle.Fill>
  65. </Rectangle><Rectangle Width="75" Height="75">
  66.   <Rectangle.Fill>
  67.     <SolidColorBrush Color="Red" />
  68.   </Rectangle.Fill>
  69. </Rectangle><Rectangle Width="75" Height="75">
  70.   <Rectangle.Fill>
  71.     <SolidColorBrush Color="Red" />
  72.   </Rectangle.Fill>
  73. </Rectangle><Rectangle Width="75" Height="75">
  74.   <Rectangle.Fill>
  75.     <SolidColorBrush Color="Red" />
  76.   </Rectangle.Fill>
  77. </Rectangle><Rectangle Width="75" Height="75">
  78.   <Rectangle.Fill>
  79.     <SolidColorBrush Color="Red" />
  80.   </Rectangle.Fill>
  81. </Rectangle><Rectangle Width="75" Height="75">
  82.   <Rectangle.Fill>
  83.     <SolidColorBrush Color="Red" />
  84.   </Rectangle.Fill>
  85. </Rectangle><Rectangle Width="75" Height="75">
  86.   <Rectangle.Fill>
  87.     <SolidColorBrush Color="Red" />
  88.   </Rectangle.Fill>
  89. </Rectangle><Rectangle Width="75" Height="75">
  90.   <Rectangle.Fill>
  91.     <SolidColorBrush Color="Red" />
  92.   </Rectangle.Fill>
  93. </Rectangle><Rectangle Width="75" Height="75">
  94.   <Rectangle.Fill>
  95.     <SolidColorBrush Color="Red" />
  96.   </Rectangle.Fill>
  97. </Rectangle><Rectangle Width="75" Height="75">
  98.   <Rectangle.Fill>
  99.     <SolidColorBrush Color="Red" />
  100.   </Rectangle.Fill>
  101. </Rectangle><Rectangle Width="75" Height="75">
  102.   <Rectangle.Fill>
  103.     <SolidColorBrush Color="Red" />
  104.   </Rectangle.Fill>
  105. </Rectangle><Rectangle Width="75" Height="75">
  106.   <Rectangle.Fill>
  107.     <SolidColorBrush Color="Red" />
  108.   </Rectangle.Fill>
  109. </Rectangle><Rectangle Width="75" Height="75">
  110.   <Rectangle.Fill>
  111.     <SolidColorBrush Color="Red" />
  112.   </Rectangle.Fill>
  113. </Rectangle><Rectangle Width="75" Height="75">
  114.   <Rectangle.Fill>
  115.     <SolidColorBrush Color="Red" />
  116.   </Rectangle.Fill>
  117. </Rectangle><Rectangle Width="75" Height="75">
  118.   <Rectangle.Fill>
  119.     <SolidColorBrush Color="Red" />
  120.   </Rectangle.Fill>
  121. </Rectangle><Rectangle Width="75" Height="75">
  122.   <Rectangle.Fill>
  123.     <SolidColorBrush Color="Red" />
  124.   </Rectangle.Fill>
  125. </Rectangle><Rectangle Width="75" Height="75">
  126.   <Rectangle.Fill>
  127.     <SolidColorBrush Color="Red" />
  128.   </Rectangle.Fill>
  129. </Rectangle><Rectangle Width="75" Height="75">
  130.   <Rectangle.Fill>
  131.     <SolidColorBrush Color="Red" />
  132.   </Rectangle.Fill>
  133. </Rectangle><Rectangle Width="75" Height="75">
  134.   <Rectangle.Fill>
  135.     <SolidColorBrush Color="Red" />
  136.   </Rectangle.Fill>
  137. </Rectangle><Rectangle Width="75" Height="75">
  138.   <Rectangle.Fill>
  139.     <SolidColorBrush Color="Red" />
  140.   </Rectangle.Fill>
  141. </Rectangle>      
复制代码
在上述示例中,DrawingBrush的Drawing属性用来设置绘图画笔的内容。其中Drawing类型为abstract修饰的抽象类,其中GeometryDrawing为Drawing的派生类。
 
视觉对象画笔(VisualBrush)

VisualBrush利用Visual对象(视觉元素)绘制区域,视觉对象包罗Button,Page,MediaElement等内容。VisualBrush还可以将应用程序的一部门投影到另一个区域。创建反射结果和放大屏幕部门非常有用。
  1. Rectangle rectangle = new Rectangle();
  2. rectangle.Width = 75;
  3. rectangle.Height = 75;
  4. // Create a VisualBrush and use it
  5. // to paint the rectangle.
  6. VisualBrush myBrush = new VisualBrush();
  7. //
  8. // Create the brush's contents.
  9. //
  10. StackPanel panel = new StackPanel();
  11. // Create a DrawingBrush and use it to
  12. // paint the panel.
  13. DrawingBrush brush = new DrawingBrush();
  14. GeometryGroup g = new GeometryGroup();
  15. g.Children.Add(new RectangleGeometry(new Rect(0, 0, 50, 50)));
  16. g.Children.Add(new RectangleGeometry(new Rect(50, 50, 50, 50)));
  17. RadialGradientBrush checkerBrush = new RadialGradientBrush();
  18. checkerBrush.GradientStops.Add(new GradientStop(Colors.MediumBlue, 0.0));
  19. checkerBrush.GradientStops.Add(new GradientStop(Colors.White, 1.0));
  20. GeometryDrawing checkers = new GeometryDrawing(checkerBrush, null, g);
  21. brush.Drawing = checkers;
  22. panel.Background = brush;
  23. // Create some text.
  24. TextBlock someText = new TextBlock();
  25. someText.Text = "Hello, World";
  26. FontSizeConverter converter = new FontSizeConverter();
  27. someText.FontSize = (double)converter.ConvertFromString("10pt");
  28. someText.Margin = new Thickness(10);
  29. panel.Children.Add(someText);
  30. myBrush.Visual = panel;
  31. rectangle.Fill = myBrush;
复制代码
上述C#代码利用XAML定义,如下所示:
  1. <Rectangle Width="75" Height="75">
  2.   <Rectangle.Fill>
  3.     <SolidColorBrush Color="Red" />
  4.   </Rectangle.Fill>
  5. </Rectangle><Rectangle Width="75" Height="75">
  6.   <Rectangle.Fill>
  7.     <SolidColorBrush Color="Red" />
  8.   </Rectangle.Fill>
  9. </Rectangle><Rectangle Width="75" Height="75">
  10.   <Rectangle.Fill>
  11.     <SolidColorBrush Color="Red" />
  12.   </Rectangle.Fill>
  13. </Rectangle><Rectangle Width="75" Height="75">
  14.   <Rectangle.Fill>
  15.     <SolidColorBrush Color="Red" />
  16.   </Rectangle.Fill>
  17. </Rectangle><Rectangle Width="75" Height="75">
  18.   <Rectangle.Fill>
  19.     <SolidColorBrush Color="Red" />
  20.   </Rectangle.Fill>
  21. </Rectangle><Rectangle Width="75" Height="75">
  22.   <Rectangle.Fill>
  23.     <SolidColorBrush Color="Red" />
  24.   </Rectangle.Fill>
  25. </Rectangle><Rectangle Width="75" Height="75">
  26.   <Rectangle.Fill>
  27.     <SolidColorBrush Color="Red" />
  28.   </Rectangle.Fill>
  29. </Rectangle><Rectangle Width="75" Height="75">
  30.   <Rectangle.Fill>
  31.     <SolidColorBrush Color="Red" />
  32.   </Rectangle.Fill>
  33. </Rectangle><Rectangle Width="75" Height="75">
  34.   <Rectangle.Fill>
  35.     <SolidColorBrush Color="Red" />
  36.   </Rectangle.Fill>
  37. </Rectangle><Rectangle Width="75" Height="75">
  38.   <Rectangle.Fill>
  39.     <SolidColorBrush Color="Red" />
  40.   </Rectangle.Fill>
  41. </Rectangle><Rectangle Width="75" Height="75">
  42.   <Rectangle.Fill>
  43.     <SolidColorBrush Color="Red" />
  44.   </Rectangle.Fill>
  45. </Rectangle><Rectangle Width="75" Height="75">
  46.   <Rectangle.Fill>
  47.     <SolidColorBrush Color="Red" />
  48.   </Rectangle.Fill>
  49. </Rectangle><Rectangle Width="75" Height="75">
  50.   <Rectangle.Fill>
  51.     <SolidColorBrush Color="Red" />
  52.   </Rectangle.Fill>
  53. </Rectangle><Rectangle Width="75" Height="75">
  54.   <Rectangle.Fill>
  55.     <SolidColorBrush Color="Red" />
  56.   </Rectangle.Fill>
  57. </Rectangle><Rectangle Width="75" Height="75">
  58.   <Rectangle.Fill>
  59.     <SolidColorBrush Color="Red" />
  60.   </Rectangle.Fill>
  61. </Rectangle><Rectangle Width="75" Height="75">
  62.   <Rectangle.Fill>
  63.     <SolidColorBrush Color="Red" />
  64.   </Rectangle.Fill>
  65. </Rectangle><Rectangle Width="75" Height="75">
  66.   <Rectangle.Fill>
  67.     <SolidColorBrush Color="Red" />
  68.   </Rectangle.Fill>
  69. </Rectangle><Rectangle Width="75" Height="75">
  70.   <Rectangle.Fill>
  71.     <SolidColorBrush Color="Red" />
  72.   </Rectangle.Fill>
  73. </Rectangle><Rectangle Width="75" Height="75">
  74.   <Rectangle.Fill>
  75.     <SolidColorBrush Color="Red" />
  76.   </Rectangle.Fill>
  77. </Rectangle><Rectangle Width="75" Height="75">
  78.   <Rectangle.Fill>
  79.     <SolidColorBrush Color="Red" />
  80.   </Rectangle.Fill>
  81. </Rectangle><Rectangle Width="75" Height="75">
  82.   <Rectangle.Fill>
  83.     <SolidColorBrush Color="Red" />
  84.   </Rectangle.Fill>
  85. </Rectangle><Rectangle Width="75" Height="75">
  86.   <Rectangle.Fill>
  87.     <SolidColorBrush Color="Red" />
  88.   </Rectangle.Fill>
  89. </Rectangle><Rectangle Width="75" Height="75">
  90.   <Rectangle.Fill>
  91.     <SolidColorBrush Color="Red" />
  92.   </Rectangle.Fill>
  93. </Rectangle><Rectangle Width="75" Height="75">
  94.   <Rectangle.Fill>
  95.     <SolidColorBrush Color="Red" />
  96.   </Rectangle.Fill>
  97. </Rectangle><Rectangle Width="75" Height="75">
  98.   <Rectangle.Fill>
  99.     <SolidColorBrush Color="Red" />
  100.   </Rectangle.Fill>
  101. </Rectangle><Rectangle Width="75" Height="75">
  102.   <Rectangle.Fill>
  103.     <SolidColorBrush Color="Red" />
  104.   </Rectangle.Fill>
  105. </Rectangle><Rectangle Width="75" Height="75">
  106.   <Rectangle.Fill>
  107.     <SolidColorBrush Color="Red" />
  108.   </Rectangle.Fill>
  109. </Rectangle><Rectangle Width="75" Height="75">
  110.   <Rectangle.Fill>
  111.     <SolidColorBrush Color="Red" />
  112.   </Rectangle.Fill>
  113. </Rectangle><Rectangle Width="75" Height="75">
  114.   <Rectangle.Fill>
  115.     <SolidColorBrush Color="Red" />
  116.   </Rectangle.Fill>
  117. </Rectangle><Rectangle Width="75" Height="75">
  118.   <Rectangle.Fill>
  119.     <SolidColorBrush Color="Red" />
  120.   </Rectangle.Fill>
  121. </Rectangle><Rectangle Width="75" Height="75">
  122.   <Rectangle.Fill>
  123.     <SolidColorBrush Color="Red" />
  124.   </Rectangle.Fill>
  125. </Rectangle><Rectangle Width="75" Height="75">
  126.   <Rectangle.Fill>
  127.     <SolidColorBrush Color="Red" />
  128.   </Rectangle.Fill>
  129. </Rectangle><Rectangle Width="75" Height="75">
  130.   <Rectangle.Fill>
  131.     <SolidColorBrush Color="Red" />
  132.   </Rectangle.Fill>
  133. </Rectangle><Rectangle Width="75" Height="75">
  134.   <Rectangle.Fill>
  135.     <SolidColorBrush Color="Red" />
  136.   </Rectangle.Fill>
  137. </Rectangle><Rectangle Width="75" Height="75">
  138.   <Rectangle.Fill>
  139.     <SolidColorBrush Color="Red" />
  140.   </Rectangle.Fill>
  141. </Rectangle><Rectangle Width="75" Height="75">
  142.   <Rectangle.Fill>
  143.     <SolidColorBrush Color="Red" />
  144.   </Rectangle.Fill>
  145. </Rectangle><Rectangle Width="75" Height="75">
  146.   <Rectangle.Fill>
  147.     <SolidColorBrush Color="Red" />
  148.   </Rectangle.Fill>
  149. </Rectangle><Rectangle Width="75" Height="75">
  150.   <Rectangle.Fill>
  151.     <SolidColorBrush Color="Red" />
  152.   </Rectangle.Fill>
  153. </Rectangle><Rectangle Width="75" Height="75">
  154.   <Rectangle.Fill>
  155.     <SolidColorBrush Color="Red" />
  156.   </Rectangle.Fill>
  157. </Rectangle><Rectangle Width="75" Height="75">
  158.   <Rectangle.Fill>
  159.     <SolidColorBrush Color="Red" />
  160.   </Rectangle.Fill>
  161. </Rectangle><Rectangle Width="75" Height="75">
  162.   <Rectangle.Fill>
  163.     <SolidColorBrush Color="Red" />
  164.   </Rectangle.Fill>
  165. </Rectangle><Rectangle Width="75" Height="75">
  166.   <Rectangle.Fill>
  167.     <SolidColorBrush Color="Red" />
  168.   </Rectangle.Fill>
  169. </Rectangle><Rectangle Width="75" Height="75">
  170.   <Rectangle.Fill>
  171.     <SolidColorBrush Color="Red" />
  172.   </Rectangle.Fill>
  173. </Rectangle><Rectangle Width="75" Height="75">
  174.   <Rectangle.Fill>
  175.     <SolidColorBrush Color="Red" />
  176.   </Rectangle.Fill>
  177. </Rectangle><Rectangle Width="75" Height="75">
  178.   <Rectangle.Fill>
  179.     <SolidColorBrush Color="Red" />
  180.   </Rectangle.Fill>
  181. </Rectangle><Rectangle Width="75" Height="75">
  182.   <Rectangle.Fill>
  183.     <SolidColorBrush Color="Red" />
  184.   </Rectangle.Fill>
  185. </Rectangle>      Hello, World!<Rectangle Width="75" Height="75">
  186.   <Rectangle.Fill>
  187.     <SolidColorBrush Color="Red" />
  188.   </Rectangle.Fill>
  189. </Rectangle><Rectangle Width="75" Height="75">
  190.   <Rectangle.Fill>
  191.     <SolidColorBrush Color="Red" />
  192.   </Rectangle.Fill>
  193. </Rectangle>   
复制代码
 
预定义画笔

为方便起见,WPF提供了一组可用于绘制对象的预定义画笔和体系画笔。

  • Brushes 类,定义了可用的预定义画笔列表。
  • SystemColors 类,定义了可用的体系画笔列表。
 
画笔常见属性

画笔的常见属性如下所示:

  • Opacity,表示画笔的透明度, Opacity 的值为 0 表示完全透明,1 表示完全不透明,0.25表示25%的透明。
  • Transform,表示对画笔内容的倾斜,旋转,缩放等结果。
 
另外由于Brush继承自 Freezable 类,Brush 类提供了多种特殊功能:可以声明 Brush 对象为资源、在多个对象之间共享并可克隆。此外,除 Brush 之外的所有 VisualBrush 类型可以设置为只读,以提高性能和使线程安全。
 
控件画笔属性

不同的UI对象,所对应的画笔属性不同,主要有以下几种:

  • Border,可以设置边框(BorderBrush),背景色(Background)
  • Control ,可以设置背景色(Background),远景色(Foreground)
  • Panel,容器可以设置背景色(Background)
  • Pen,画笔设置笔触(Brush)
  • Shape,形状可以设置填充(Fill),线条(Stroke)
  • TextBlock,设置背景色(Background)
 
关于更多内容,可参考官方文档:https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/graphics-multimedia/wpf-brushes-overview?view=netframeworkdesktop-4.8以上就是《不可不知的WPF画笔(Brush)》的全部内容,希望可以抛砖引玉,一起学习,共同进步!!!学习编程,从关注【老码识途】开始,为大家分享更多文章!!!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

道家人

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表