WPF學習 第十二章2 畫刷

2. 畫刷

2.1有哪些畫刷

名稱

說明

SolidColorBrush

單色畫刷

LinearGradientBrush

漸變畫刷

RadialGradientBrush

散射漸變畫刷

ImageBrush

圖片畫刷

DrawingBrush

繪圖畫刷

VisualBrush

虛擬畫刷

BitmapCacheBrush

緩衝畫刷

2.2 SolidColorBrush

下面三種方法都可以創建畫刷:

SolidColorBrush brush1 = newSolidColorBrush(Colors.Blue);

SolidColorBrush brush2 =SystemColors.ControlLightBrush;

SolidColorBrush brush3 = newSolidColorBrush(Color.FromRgb(255,0,0));

2.3 LinearGradientBrush

2.3.1 常用屬性說明

GradientStop:設置漸變顏色Color和拐點Offset

StartPoint 和EndPoint:設置相對起始點和結束點(值範圍是0-1)

SpreadMethod:設置平鋪模式

2.3.2 GradientStop

1.默認漸變是從左上角到右下角,定義兩個GradientStop,一個Offset=0,另一個Offset=1則表示從左上角(0,0)到右下角。

 

<Rectangle Canvas.Top="30"Canvas.Left="30" Width="200" Height="150"Stroke="Black">

           <Rectangle.Fill>

                <LinearGradientBrush>

                    <GradientStopColor="Red" Offset="0"></GradientStop>

                    <GradientStopColor="White" Offset="1"></GradientStop>

               </LinearGradientBrush>

           </Rectangle.Fill>

       </Rectangle>

2.如果設置第二個Offset爲0.5則漸變範圍是左上角到中間,後面則保持第二種顏色。

<LinearGradientBrush>

<GradientStopColor="Red" Offset="0"></GradientStop>

<GradientStop Color="White" Offset="0.5"></GradientStop>

</LinearGradientBrush>

2.可以添加多個GradientStop實現多個顏色的漸變。

<LinearGradientBrush>

<GradientStopColor="Red" Offset="0"></GradientStop>

<GradientStopColor="Yellow" Offset="0.3"></GradientStop>

<GradientStopColor="Blue" Offset="0.6"></GradientStop>

<GradientStopColor="White" Offset="1"></GradientStop>

</LinearGradientBrush>

2.3.3 StartPoint 和EndPoint

1.縱向漸變和橫向漸變

<LinearGradientBrushStartPoint="0,0" EndPoint="0,1">

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

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

</LinearGradientBrush>

<LinearGradientBrushStartPoint="0,0" EndPoint="1,0">

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

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

</LinearGradientBrush>

2.EndPoint和Offset的值都會影響最終的顯示


<LinearGradientBrushStartPoint="0,0" EndPoint="0.5,0">

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

<GradientStop Color="White" Offset="0.5"></GradientStop>

</LinearGradientBrush>

2.3.4 SpreadMethod

1. 反轉

<LinearGradientBrushStartPoint="0,0" EndPoint="0.5,0"SpreadMethod="Reflect">

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

<GradientStopColor="White" Offset="1"></GradientStop>

</LinearGradientBrush>

2. 重複

<LinearGradientBrushStartPoint="0,0" EndPoint="0.5,0"SpreadMethod="Repeat">

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

<GradientStopColor="White" Offset="1"></GradientStop>

</LinearGradientBrush>

2.3.5 可以填充任何需要畫刷的地方

2.4 RadialGradientBrush

2.4.1 常用屬性說明

GradientStop:設置漸變顏色Color和拐點Offset

Center、RadiusX和RadiusY:定義橢圓漸變區域

GradientOrigin:在橢圓漸變區域裏的漸變座標原點

SpreadMethod:設置平鋪模式,橢圓漸變區域外的平鋪模式。

2.4.2 GradientStop

<Rectangle Canvas.Top="25"Canvas.Left="25" Width="200" Height="150"Stroke="Black" >

           <Rectangle.Fill>

                <RadialGradientBrush>

                    <GradientStopColor="Red" Offset="0"></GradientStop>

                    <GradientStopColor="Yellow" Offset="1"></GradientStop>

                </RadialGradientBrush>

           </Rectangle.Fill>

       </Rectangle>

2.4.3 Center、RadiusX、 RadiusY和 GradientOrigin

左上:Center=0.5,0.5 RadiusX=0.4 RadiusY=0.4 GradientOrigin=0.5,0.5

右上:Center=0.7,0.5 RadiusX=0.4 RadiusY=0.4 GradientOrigin=0.7,0.5

左下:Center=0.5,0.5 RadiusX=0.7 RadiusY=0.7 GradientOrigin=0.5,0.5

右下:Center=0.5,0.5 RadiusX=0.7 RadiusY=0.7 GradientOrigin=0.2,0.2

2.5 ImageBrush

2.5.1 使用圖片畫刷

<Rectangle Canvas.Top="55"Canvas.Left="25" Width="200" Height="82.553"Stroke="Black" >

           <Rectangle.Fill>

                <ImageBrushImageSource="Koala.jpg"></ImageBrush>

           </Rectangle.Fill>

       </Rectangle>

2.5.2 使用Stretch改變填充方式

 

2.5.3 使用Viewbox剪取顯示圖片的一部分

2.5.4 使用TileMode平鋪圖片

2.6 VisualBrush

相當於一面複製圖片的鏡子。

<StackPanelName="stackpanel1">

           <Button Name="button1" Canvas.Top="10"Canvas.Left="50">Button1</Button>

           <TextBox>TextBox1</TextBox>

       </StackPanel>

       <Rectangle Canvas.Top="55" Canvas.Left="25"Width="200" Height="82.553" Stroke="Black" >

           <Rectangle.Fill>

                <VisualBrushVisual="{Binding ElementName=stackpanel1}"></VisualBrush>

           </Rectangle.Fill>

       </Rectangle>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章