Windows Phone開發(31):畫刷 轉:http://blog.csdn.net/tcjiaan/article/details/7460226

來源:互聯網
上載者:User

畫刷是啥玩意兒?哈,其實畫刷是用來塗鴉,真的,沒騙你,至於你信不信,反正我信了。
本文通過價紹幾個典型的畫刷,使你明白畫刷就是用來塗鴉的。

 一、純色畫刷SolidColorBrush。

這個傢伙比較“純”,當然它不是裝純,的確很純,純到只用一種顏色,所以叫“單色畫刷”。
來,看看這個樣本,我們畫一個矩形(放在一個Canvas中),然後用這個純傢伙來打扮一下。

[html] view plaincopyprint?

  1. <Rectangle Canvas.Left="5" Canvas.Top="130" Width="85" Height="75">  
  2.     <Rectangle.Fill>  
  3.         <SolidColorBrush Color="White"/>  
  4.     </Rectangle.Fill>  
  5. </Rectangle>  

 

因為內建有轉換器,微軟一向是關心開發人員的身體健康的,所以,MS不捨得我們寫代碼的時候過多勞累,所以,上面的內容可以簡寫為。

[html] view plaincopyprint?

  1. <Rectangle Canvas.Left="110" Canvas.Top="156"  
  2.            Width="120" Height="120" Fill="Blue"/>  

 

這兩段代碼實現的效果是一樣的,很明顯,你會更喜歡後者,因為它簡練了N多。

接下來我們看看Color屬性有哪些表示方法。
1、名字,比如Blue,不用我翻譯了,明白了;
2、RGB,如#CCCCCC,如果你幹過網頁設計,寫過CSS樣式,你懂的;
3、ARGB,如#0CBBBBBB,其實就是在前面加一個A值,0-1之間,透明度。
可以說,你記住了以上三點,你就可以寫出數不盡的顏色。

 

 

 

二、漸層畫刷。

如果你玩過像Photoshop這些繪圖軟體,或者你做過GDI編程,當然你玩過WPF更好,簡直一模一樣。
漸層顏色,我們可以通俗地理解為:由N多種顏色組成,這些顏色有各自的分布主式,並且,在各段顏色之間都有一個過渡。
下面看看兩種漸層形式:線性和徑向。
(一)線性漸層
先看看下面的圖,相信沒有什麼文字可以比圖片更直觀,相信你一看就知道何為線性漸層,只可意會啊。

好,上面的效果是如何?的呢?用到這個類LinearGradientBrush。看一看XAML代碼。

[html] view plaincopyprint?

  1. <Rectangle Canvas.Top="312" Canvas.Left="40" Width="278" Height="95">  
  2.     <Rectangle.Fill>  
  3.         <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">  
  4.             <GradientStop Color="Yellow" Offset="0"/>  
  5.             <GradientStop Color="Green" Offset="0.5"/>  
  6.             <GradientStop Color="Orange" Offset="1"/>  
  7.         </LinearGradientBrush>  
  8.     </Rectangle.Fill>  
  9. </Rectangle>  

其中,我們要關注幾個地方:
1、StartPoint,線性漸層的起始點,既然是線性了,肯定有始有終的了,X和Y都在0和1之間;
2、EndPoint,結束點,同樣,值範圍在0-1之間,包含0和1.
3、0,0點在左上方,1,1點在右下角。
每個LinearGradientBrush都可以包含N個GradientStop,表示每種顏色的終點位置,如所示。

如果你還不是很理解,最好的法子就是多練習。

 

[html] view plaincopyprint?

  1. <Ellipse Canvas.Top="465" Canvas.Left="40" Width="150" Height="120">  
  2.     <Ellipse.Fill>  
  3.         <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">  
  4.             <GradientStop Color="#FF8E8EE8" />  
  5.             <GradientStop Color="#FFDBBC55" Offset="0.6" />  
  6.             <GradientStop Color="#FF61DDF5" Offset="0.99" />  
  7.         </LinearGradientBrush>  
  8.     </Ellipse.Fill>  
  9. </Ellipse>  

以上兩個例子的運行效果如所示。

 

 

(二)放射狀漸層
名字不好理解,還是看圖寫作文吧。

怎麼樣,美嗎?看看實現的XAML代碼吧。

[html] view plaincopyprint?

  1. <Rectangle Canvas.Left="242" Canvas.Top="465" Width="150" Height="150">  
  2.     <Rectangle.Fill>  
  3.         <RadialGradientBrush Center="0.5,0.5" RadiusX="0.5" RadiusY="0.5">  
  4.             <GradientStop Color="Green" Offset="0.2"/>  
  5.             <GradientStop Color="LightBlue" Offset="0.7"/>  
  6.             <GradientStop Color="Yellow" Offset="1"/>  
  7.         </RadialGradientBrush>  
  8.     </Rectangle.Fill>  
  9. </Rectangle>  

看看,有幾個屬性比刺眼。
1、Center,中心點,你看到了,放射狀漸層很像一個圓,有中心點,有半徑,同樣,取值範圍是[0,1]。
2、RadiusX和RadiusY,同理,範圍在[0,1],橫軸和縱軸上的半徑。
可以發現這些值都是相對的邏輯值,這樣使用比絕對位置更靈活。

 

 

三、視頻畫刷VideoBrush。

 

這個要配合MediaElement一起使用,在前面的文章中已經介紹過。

 

 

 

四、圖象畫刷ImageBrush。

 

如果你覺得前面的都是用顏色的,不夠爽,不妨看看這個,用圖片來填充。

實現的XAML如下。

[html] view plaincopyprint?

  1. <Ellipse Canvas.Left="40" Canvas.Top="445" Width="398" Height="248">  
  2.     <Ellipse.Fill>  
  3.         <ImageBrush ImageSource="test.jpg"/>  
  4.     </Ellipse.Fill>  
  5. </Ellipse>  

 

這個就簡單了,ImageSource屬性就是指向一張圖片,使用方法與Image控制項類似。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.