[Windows 8 App]圖形-----【Brush】

[Windows 8 App]圖形-----【Brush】

Brush就是筆刷,筆刷對圖形、文件、控制項的內部或輪廓上色都是相當重要的

筆刷能提高美觀性,這可以讓使用者操作時享受著曼妙的藝術

筆刷分成三種:單色筆刷、線性漸層筆刷、圖像筆刷

先介紹單色筆刷

 

  • 單色筆刷

單色筆刷是使用單一顏色來繪製圖形

有兩種構造方法:一種是沒有傳進參數的,另一種是傳入一個顏色的屬性

在XAML code中有三種方式可以來表示顏色

 

第一種:預定義的顏色名稱

Windows 的應用程式中共有256種已經定義好的顏色

在開發時,只需要使用Fill屬性便能將自己喜歡的顏色填滿上去

 

第二種:十六進制的顏色值

是使用8位元組成的一組值來表示

例如:" 001122FF "

前面的二位 00 表示:Alpha(透明度)

中間的二位 11 表示:紅色

中間的二位 22 表示:綠色

後面的二位 FF 表示:藍色

 

第三種:屬性元素語法

這是指定元素 Opacity 屬性值,Opacity 值範圍是 0~1

值越大越不透明,相反的,值越小越透明

 

我們來做一個範例,將上面的三種方式都實作一次

 

新增一個空白的市集專案,取名為【Brush1】,然後開啟【MainPage.xaml】

底下是程式碼的部分:

 


<Page
    x:Class="Brush1.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Brush1"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
        <Rectangle Fill="Yellow" Margin="123,270,975,220" />
        <Ellipse Fill="#FFFF0000" Margin="583,284,489,194" />
        <Ellipse Margin="1001.69,277.381,53.69,199.381" RenderTransformOrigin="0.5,0.5" UseLayoutRounding="False" d:LayoutRounding="Auto">
            <Ellipse.Fill>
                <SolidColorBrush Color="Green" Opacity="0.5" />
            </Ellipse.Fill>
        </Ellipse>
    </Grid>
</Page>

 

設計畫面如下:

60

 

 

  • 線性漸層筆刷

線性漸層筆刷是使用【GradientStop】來指定漸層漸變的顏色和位置

【GradientStop】的【Offset】屬性是表示漸層停駐點在漸層軸上的位置

【Offset】的範圍值是 0 ~ 1

值越接近 0 表示漸層的停駐點會靠近 LinearGradientBrush的StartPoint

值越接近 1 表示漸層的停駐點會靠近EndPoint

線性漸層【StartPoint】和【EndPoint】市政來指定漸層軸的方向

使用【GradientStop】的【Color】屬性是指定漸層停駐點的顏色

 

我們就來做一個範例:

首先,新增一個專案,命名為【LinearBrushPage】,開啟【MainPage.xaml】

程式碼如下:

 


<Page
    x:Class="LinearBrushPage.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:LinearBrushPage"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
        <Rectangle Height="700" Width="700">
            <Rectangle.Fill>
                <LinearGradientBrush StartPoint="0,0" EndPoint="0.5,1">
                    <GradientStop Color="Blue" Offset="0.0"/>
                    <GradientStop Color="Yellow" Offset="0.4"/>
                    <GradientStop  Color="Green" Offset="0.7"/>
                    <GradientStop  Color="Red" Offset="1.0"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
    </Grid>
</Page>

 

 

我們設置【StartPoint】為 (0,0) ,【EndPoint】 為 (0.5,1)

【Offset】簡單來說就是,開始換顏色的起點

 

設計畫面如下:

81

 

  • 拼貼筆刷

 

簡單的拼貼筆刷我們在之前的【圖像】就有介紹過了

這裡我們要介紹繪製Button類型的背景圖片

 

首先,新增一個專案,命名為【ImgBtnBrushPage】,開啟【MainPage.xaml】

程式碼如下:

 


<Page
    x:Class="ImgBtnBrushPage.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:ImgBtnBrushPage"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
        <Button Content="ImageBrush" Foreground="Yellow" FontWeight="Bold" FontSize="100" FontFamily="Verdana" Padding="20" BorderThickness="7" Margin="356,304,0,236" Height="228">
            <Button.Background>
                <ImageBrush ImageSource="images/cat.jpg" />
            </Button.Background>
        </Button>
    </Grid>
</Page>

 

在Button控制項中的Background屬性中使用【ImageBrush】設定按鈕的背景圖片

 

 

 

設計畫面:

82