Windows Phone開發(31):畫刷

來源:互聯網
上載者:User

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

 一、純色畫刷SolidColorBrush。

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

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

 

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

<Rectangle Canvas.Left="110" Canvas.Top="156"<br /> 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代碼。

<Rectangle Canvas.Top="312" Canvas.Left="40" Width="278" Height="95"><br /> <Rectangle.Fill><br /> <LinearGradientBrush StartPoint="0,0" EndPoint="1,1"><br /> <GradientStop Color="Yellow" Offset="0"/><br /> <GradientStop Color="Green" Offset="0.5"/><br /> <GradientStop Color="Orange" Offset="1"/><br /> </LinearGradientBrush><br /> </Rectangle.Fill><br /> </Rectangle>

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

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

 

<Ellipse Canvas.Top="465" Canvas.Left="40" Width="150" Height="120"><br /> <Ellipse.Fill><br /> <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1"><br /> <GradientStop Color="#FF8E8EE8" /><br /> <GradientStop Color="#FFDBBC55" Offset="0.6" /><br /> <GradientStop Color="#FF61DDF5" Offset="0.99" /><br /> </LinearGradientBrush><br /> </Ellipse.Fill><br /> </Ellipse>

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

 

 

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

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

<Rectangle Canvas.Left="242" Canvas.Top="465" Width="150" Height="150"><br /> <Rectangle.Fill><br /> <RadialGradientBrush Center="0.5,0.5" RadiusX="0.5" RadiusY="0.5"><br /> <GradientStop Color="Green" Offset="0.2"/><br /> <GradientStop Color="LightBlue" Offset="0.7"/><br /> <GradientStop Color="Yellow" Offset="1"/><br /> </RadialGradientBrush><br /> </Rectangle.Fill><br /> </Rectangle>

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

 

 

三、視頻畫刷VideoBrush。

 

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

 

 

 

四、圖象畫刷ImageBrush。

 

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

實現的XAML如下。

<Ellipse Canvas.Left="40" Canvas.Top="445" Width="398" Height="248"><br /> <Ellipse.Fill><br /> <ImageBrush ImageSource="test.jpg"/><br /> </Ellipse.Fill><br /> </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.