【萬里征程——Windows App開發】畫筆和影象

nomasp發表於2015-04-03

畫筆想必大家都不陌生,這裡系統的介紹一下好了。先來介紹純色畫筆。

最簡單的純色畫筆就是已經定義好名字的啦,比如Red和Green這種,據說一共有256種已命名的,所以基本已經夠用啦。XAML解析器會自動將這些顏色名稱連結到Color結構。

還有就是傳說中的十六進位制顏色值,它可以定義精確的24位顏色值,其中有8位用於SolidColorBrush。如下程式碼所示的,alpha=”FF”,紅色=”55”,綠色=”00”,藍色=”88”。

<Rectangle Width="200" Height="100" Fill="#FF550088" />

還有一種稱為屬性元素語法。具體用法如下,其中Opacity就是透明度咯。

  <Rectangle Width="200" Height="100">
     <Rectangle.Fill>
        <SolidColorBrush Color="Yellow" Opacity="0.3" />
     </Rectangle.Fill>
  </Rectangle>

除了純色畫筆外,還有漸變畫筆。小時候學PhotoShop的時候最喜歡漸變畫筆了。

LinearGradientBrush會沿著一條稱為漸變軸直線來進行漸變以繪製一個區域。我們還是拿Rectangle來做示例。

   <Rectangle Width="200" Height="100">
            <Rectangle.Fill>
                <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                    <GradientStop Color="Green" Offset="0.0" x:Name="GradientStop1"/>
                    <GradientStop Color="Blue" Offset="0.25" x:Name="GradientStop2"/>
                    <GradientStop Color="Wheat"  Offset="0.7" x:Name="GradientStop3"/>
                    <GradientStop Color="Yellow" Offset="0.75" x:Name="GradientStop4"/>
                    <GradientStop Color="Gold" Offset="1.0" x:Name="GradientStop5"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>

這裡寫圖片描述

通過改變StartPoint和EndPoint的屬性值可以建立各種漸變哦,比如垂直和水平方向的漸變,還可以顛倒漸變方向,甚至還可以加快漸變速度呢。

除了用著兩種畫筆外,還可以直接將圖片新增進來呢。

 <Ellipse Height="100" Width="200">
            <Ellipse.Fill>
                <ImageBrush ImageSource="9327.jpg" />
            </Ellipse.Fill>
        </Ellipse>

效果如下咯,主要是有一張合適的圖片啦。

這裡寫圖片描述

既然用到了ImageBrush,那就來看看Image和ImageBrush的區別好了。前者主要用來呈現影象,後者則為其他物件繪製為一個影象。

對於Image,我們可以來拉伸影象,也就是Stretch屬性。

None:影象不經過拉伸。如果源影象比所留給Image的區域大,那麼就會被剪下。
Uniform:按照縱橫比來縮放影象。
UniformToFill:按照縱橫比來填滿所有區域,這意味著可能會有一部分不可見。
Fill。因為不保留縱橫比而填滿螢幕,所以影象部分全部可見,但會產生畫面變形(失真)。
具體效果見下圖(來源於網路)。

這裡寫圖片描述

用Clip屬性可以對影象進行剪裁,Rect屬性在上一篇部落格中用過許多次,前2個值為起始點的X軸和Y軸座標,後2個值為終點的X軸和Y軸座標。

<Image Source="9327.jpg">
    <Image.Clip>
        <RectangleGeometry Rect="10,10,100,100"/>
    </Image.Clip>
</Image>

Image和ImageBrush能處理的影象格式有哪幾種呢?
JPEG XR
圖示(ICO)
點陣圖(BMP)
影象交換格式(GIF)
聯合影象專家組(JPEG)
可移植網路影象(PNG)
標記影象檔案格式(TIEF)

為使本文得到斧正和提問,轉載請註明出處:
http://blog.csdn.net/nomasp

相關文章