一点一滴掌握WPF应用系列 - 画刷使用(1):SolidColorBrush、LinearGradientBrush、RadialGradientBrush

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chz_cslg/article/details/49076691

        WPF中有几种画刷使我们在做效果时经常会用到的,今天就来讲讲几种画刷的使用。

1、纯色画刷SolidColorBrush:故名思议这个画刷就是给背景色或者前景色进行单一着色,就一种色彩。

前端实现代码(XAML):

        <Button>我是按钮Button1
            <Button.Background>
                <SolidColorBrush Color="Red" />
            </Button.Background>
        </Button>
        <Button>我是按钮Button2
            <Button.Background>
                <SolidColorBrush Color="#FFFF0000" />
            </Button.Background>
        </Button>

后端实现代码(C#):

Button myButton1 = new Button();
myButton1.Content = "我是按钮Button1";
SolidColorBrush mySolidColorBrush1 = new SolidColorBrush();
mySolidColorBrush1.Color = Colors.Red;
myButton1.Background = mySolidColorBrush1;

Button myButton2 = new Button();
myButton2.Content = "我是按钮Button2";
SolidColorBrush mySolidColorBrush2 = new SolidColorBrush();
//使用静态 FromArgb 可以指定颜色的 alpha 值、红色值、绿色值和蓝色值。 
//以上每种值的典型范围都是 0-255。 例如,alpha 值为 0 表示颜色完全透明,而值 255 表示颜色完全不透明。 
//同样,红色值 0 表示颜色中没有红色,而值 255 表示颜色中包含可能的最大红色分量。 
//在下面的示例中,通过指定 alpha 值、红色值、绿色值和蓝色值来描述画笔的颜色。
mySolidColorBrush2.Color = Color.FromArgb(
            255,    // Specifies the transparency of the color.
            255,    // Specifies the amount of red.
            0,      // specifies the amount of green.
            0);     // Specifies the amount of blue.
myButton1.Background = mySolidColorBrush2;


2、线性渐变画刷LinearGradientBrush:使用沿一条直线(即渐变轴)定义的渐变绘制区域。 可以使用 GradientStop 对象指定渐变的颜色及其在渐变轴上的位置。 还可以修改渐变轴,这样能够创建水平和垂直渐变并反转渐变方向。

前端实现代码(XAML):

<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 myRectangle = new Rectangle();
myRectangle.Width = 200;
myRectangle.Height = 100;

var 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));
myRectangle.Fill = myLinearGradientBrush;

//GradientStop 
//是渐变画笔的基本构造块。 渐变停止点指定渐变轴上 Offset 处的 Color。
//渐变停止点的 Color 属性指定渐变停止点的颜色。 可以使用预定义的颜色(由 Colors 类提供)设置颜色,或通过指定 ScRGB 或 ARGB 值设置颜色。 在 XAML 中,还可以使用十六进制表示法描述颜色。 有关更多信息,请参见 Color 结构。
//渐变停止点的 Offset 属性指定渐变停止点的颜色在渐变轴上的位置。 偏移量是一个范围从 0 至 1 的 Double 值。 渐变停止点的偏移量值越接近 0,颜色越接近渐变起点。 渐变偏移量值越接近 1,颜色越接近渐变终点。
//渐变停止点之间每个点的颜色按两个边界渐变停止点指定的颜色组合执行线性内插。 

//渐变轴
//如前所述,线性渐变画笔的渐变停止点位于一条直线上,即渐变轴上。 可以使用画笔的 StartPoint 和 EndPoint 属性更改直线的方向和大小。 通过操作画笔的 StartPoint 和 EndPoint,可以创建水平和垂直渐变、反转渐变方向以及压缩渐变的范围等。
//默认情况下,线性渐变画笔的 StartPoint 和 EndPoint 与绘制区域相关。 点 (0,0) 表示绘制区域的左上角,(1,1) 表示绘制区域的右下角。 LinearGradientBrush 的默认 StartPoint 为 (0,0),其默认 EndPoint 为 (1,1),这就创建了一个从绘制区域的左上角开始延伸到右下角的对角线渐变。


3、径向渐变画刷RadialGradientBrush:用沿一条轴混合在一起的颜色绘制区域。 前面的示例演示线性渐变画笔的轴是一条直线。 径向渐变画笔的轴由一个圆圈定义;其颜色从圆圈的原点向外“辐射”。

前端实现代码(XAML):

<Rectangle Width="200" Height="100">
  <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 Color="Red" Offset="0.25" />
	  <GradientStop Color="Blue" Offset="0.75" />
	  <GradientStop Color="LimeGreen" Offset="1" />
	</RadialGradientBrush>
  </Rectangle.Fill>
</Rectangle>

后端实现代码(C#):

var myRadialGradientBrush = new RadialGradientBrush();
myRadialGradientBrush.GradientOrigin = new Point(0.5, 0.5);
myRadialGradientBrush.Center = new Point(0.5, 0.5);
myRadialGradientBrush.RadiusX = 0.5;
myRadialGradientBrush.RadiusY = 0.5;
myRadialGradientBrush.GradientStops.Add(new GradientStop(Colors.Yellow, 0.0));
myRadialGradientBrush.GradientStops.Add(new GradientStop(Colors.Red, 0.25));
myRadialGradientBrush.GradientStops.Add(new GradientStop(Colors.Blue, 0.75));
myRadialGradientBrush.GradientStops.Add(new GradientStop(Colors.LimeGreen, 1.0));

Rectangle myRectangle = new Rectangle();
myRectangle.Width = 200;
myRectangle.Height = 100;
myRectangle.Fill = myRadialGradientBrush;
//GradientOrigin 指定径向渐变画笔的渐变轴的起点。 渐变轴从渐变原点辐射至渐变圆。 
//画笔的渐变圆由其 Center、RadiusX 和 RadiusY 属性定义。


 -----------------------------------------------------------------------------------------------------------------------------------------------------

感谢阅读,希能对你有益。

2015年10月14日

Kevin.Chen     蘇州.娄城

O(∩_∩)O~

猜你喜欢

转载自blog.csdn.net/chz_cslg/article/details/49076691
今日推荐