【萬裡征程——Windows App開發】畫筆和映像,征程app
畫筆想必大家都不陌生,這裡系統的介紹一下好了。先來介紹單色筆刷。
最簡單的單色筆刷就是已經定義好名字的啦,比如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 格式(JPEG)
可移植網狀圖像(PNG)
TIFF 格式(TIEF)