[Silverlight]玩你的視覺 ----- Day2

[Silverlight]玩你的視覺 ----- Day2

在上次我們談完了基本款的「Hello Silverlight」之後,現在,我們從另一個角度來切入,來談談網頁Designer如何來協同作業。

看看下圖的頁面,是不是略顯得單調?

image

 

過去,我們透過CSS來調整整個頁面的美觀(有些人公司分工比較細,所以有專業的網頁Designer來協助,而有些人則是多功能工具人

,全部包到底),現在透過Silverlight來處理,你可以看到基本的控制項外觀已經變得比較好看,但是整體來講,還是需要Designer來

協助處理。微軟在規劃Silverlight的時候,當然也有想到了這部份,所以他們推出了Microsoft Expression Studio(目前出到2.0)來作為

Designer的工具。

 

image

這套工具主要包含了Expression Web、Expression Blend、Expression Design、Expression Media等,其中Expression Web類似過去

的FrontPage,而另外三個則跟Silverlight都有或多或少的關係。

 

今天,我要先來介紹Expression Design,這個工具主要是用來協助Designer處理「向量」的圖形,就我的想法來講,有點類似Photoshop

或是PhotoImpact扮演的角色,讓你去設計、調整你的圖片,然後在Expression Web、Expression Blend或是Visual Studio中使用。

 

接下來,我們就Day1那個專案來作調整,來把背景美化。

1.

首先,我們打開Expression Design2,看到的是如下圖的環境:

image

 

2.

選擇檔案(File)->新增(New),然後會跳出如下的視窗,在視窗名稱中輸入background,按下OK按鈕。

image

 

3.

然後會出現的要設計的畫面,因為我們要做的背景範圍比較大,比較不用作到細微的部份,所以,我們

在畫面中,把檢視的大小調整到50%。

image

 

4.

接下來,我們選擇筆刷。

image

 

5.

在畫面右方的筆刷屬性中,我們在使用壓克力(Acrylic)種類中的Dry Streaky筆刷(這邊你也可以嘗試使用

不同筆刷樣式來帶給你不同感受),然後將寬度調到150px。

image

 

6.

我們首先來設計天空,在屬性中的色盤,當你選擇顏色後,就會出現在紅色框架中,你可以在下面的顏色

調色盤中微調成你想要的色彩,在Fill屬性這邊我們選擇的是水藍色,這是筆刷的內色,然後在Stroke屬性,

也是設定成一樣的顏色。

image

 

7.

開始來亂畫...(Expression Design也支援手寫觸控版,如果有興趣,買個來玩玩吧)

image

 

8.

草地也仿效這作法,但是顏色改成綠色,如果你是其他星球的人,當然也可以選其他顏色,然後畫上幾朵雲:

image

 

9.

接下來把它匯出成XAML CODE,請選擇檔案(File)->匯出(Export),然後會跳出下列視窗,我們選擇匯出

Silverlight Canvas的格式,然後命名為background.xaml:

image

(這邊你也可以匯出成不同格式,像是PDF、PNG等):

image

 

10.

接下來,在Expression Blend 2(記得要更新到SP1)中開啟Day1的那個專案,加入backround.xaml。

image

 

11.

然後你會發現在專案中多了一個資料夾以及background.xaml檔案,我們來看看background.xaml的內容,

你會發現,原來筆刷被存成image檔案,然後透過Image控制項去描繪出整個畫面的背景:

 

 

<?xml version="1.0" encoding="utf-8"?>

<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Name="background" Width="800" Height="600" Clip="F1 M 0,0L 800,0L 800,600L 0,600L 0,0">

    <Canvas x:Name="Layer_1" Width="800" Height="600" Canvas.Left="0" Canvas.Top="0">

        <Image x:Name="Image" Source="background_files/image0.png" Width="1052" Height="386" Canvas.Left="-110.642" Canvas.Top="265.212"/>

        <Image x:Name="Image_0" Source="background_files/image1.png" Width="1011" Height="457" Canvas.Left="-103.205" Canvas.Top="-65.5001"/>

        <Image x:Name="Image_1" Source="background_files/image2.png" Width="454" Height="294" Canvas.Left="386.962" Canvas.Top="45.2347"/>

        <Image x:Name="Image_2" Source="background_files/image3.png" Width="214" Height="118" Canvas.Left="-15.184" Canvas.Top="311.469"/>

        <Image x:Name="Image_3" Source="background_files/image4.png" Width="131" Height="106" Canvas.Left="135.786" Canvas.Top="290.055"/>

        <Image x:Name="Image_4" Source="background_files/image5.png" Width="98" Height="67" Canvas.Left="60.5" Canvas.Top="61.3176"/>

        <Image x:Name="Image_5" Source="background_files/image6.png" Width="108" Height="66" Canvas.Left="62.122" Canvas.Top="39.2513"/>

        <Image x:Name="Image_6" Source="background_files/image7.png" Width="108" Height="65" Canvas.Left="347.802" Canvas.Top="62.4844"/>

        <Image x:Name="Image_7" Source="background_files/image8.png" Width="125" Height="72" Canvas.Left="594.925" Canvas.Top="61.4475"/>

        <Image x:Name="Image_8" Source="background_files/image9.png" Width="138" Height="96" Canvas.Left="64.4277" Canvas.Top="47.2719"/>

        <Image x:Name="Image_9" Source="background_files/image10.png" Width="153" Height="96" Canvas.Left="338.893" Canvas.Top="39.1728"/>

        <Image x:Name="Image_10" Source="background_files/image11.png" Width="153" Height="81" Canvas.Left="581.979" Canvas.Top="60.7788"/>

        <Image x:Name="Image_11" Source="background_files/image12.png" Width="898" Height="389" Canvas.Left="-26.5" Canvas.Top="263.397"/>

        <Image x:Name="Image_12" Source="background_files/image13.png" Width="880" Height="292" Canvas.Left="-41.5104" Canvas.Top="124.5"/>

        <Image x:Name="Image_13" Source="background_files/image14.png" Width="398" Height="144" Canvas.Left="290.76" Canvas.Top="145.815"/>

    </Canvas>

</Canvas>

 

12.

我們取第二個Canvas內容貼到原本的Page.xaml中:

<UserControl x:Class="SilverLight_D1.Page"

   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

   Width="1024" Height="768" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d">

    <Grid x:Name="LayoutRoot" Background="White">

        <Canvas x:Name="Layer_1" Width="1024" Height="768" Canvas.Left="0" Canvas.Top="0" Margin="112,80,-112,-80">

            <Image x:Name="Image" Source="background_files/image0.png" Width="1052" Height="386" Canvas.Left="-110.642" Canvas.Top="265.212"/>

            <Image x:Name="Image_0" Source="background_files/image1.png" Width="1011" Height="457" Canvas.Left="-103.205" Canvas.Top="-65.5001"/>

            <Image x:Name="Image_1" Source="background_files/image2.png" Width="454" Height="294" Canvas.Left="386.962" Canvas.Top="45.2347"/>

            <Image x:Name="Image_2" Source="background_files/image3.png" Width="214" Height="118" Canvas.Left="-15.184" Canvas.Top="311.469"/>

            <Image x:Name="Image_3" Source="background_files/image4.png" Width="131" Height="106" Canvas.Left="135.786" Canvas.Top="290.055"/>

            <Image x:Name="Image_4" Source="background_files/image5.png" Width="98" Height="67" Canvas.Left="60.5" Canvas.Top="61.3176"/>

            <Image x:Name="Image_5" Source="background_files/image6.png" Width="108" Height="66" Canvas.Left="62.122" Canvas.Top="39.2513"/>

            <Image x:Name="Image_6" Source="background_files/image7.png" Width="108" Height="65" Canvas.Left="347.802" Canvas.Top="62.4844"/>

            <Image x:Name="Image_7" Source="background_files/image8.png" Width="125" Height="72" Canvas.Left="594.925" Canvas.Top="61.4475"/>

            <Image x:Name="Image_8" Source="background_files/image9.png" Width="138" Height="96" Canvas.Left="64.4277" Canvas.Top="47.2719"/>

            <Image x:Name="Image_9" Source="background_files/image10.png" Width="153" Height="96" Canvas.Left="338.893" Canvas.Top="39.1728"/>

            <Image x:Name="Image_10" Source="background_files/image11.png" Width="153" Height="81" Canvas.Left="581.979" Canvas.Top="60.7788"/>

            <Image x:Name="Image_11" Source="background_files/image12.png" Width="898" Height="389" Canvas.Left="-26.5" Canvas.Top="263.397"/>

            <Image x:Name="Image_12" Source="background_files/image13.png" Width="880" Height="292" Canvas.Left="-41.5104" Canvas.Top="124.5"/>

            <Image x:Name="Image_13" Source="background_files/image14.png" Width="398" Height="144" Canvas.Left="290.76" Canvas.Top="145.815"/>

        </Canvas>

        <Button x:Name="Button1" Margin="496,288,488,450" Content="按我" Width="40" Height="30" Background="Red" Foreground="Green" Click="Button1_Click" d:LayoutOverrides="VerticalAlignment, Width" />

        <TextBox x:Name="TextBox1" Text="" Width="104" Height="38" BorderBrush="Blue" BorderThickness="3" HorizontalAlignment="Right" Margin="0,0,456,408" VerticalAlignment="Bottom" d:LayoutOverrides="VerticalAlignment" />

    </Grid>

</UserControl>

 

 

然後你就可以看到畫面變成這樣(用Visual Studio2K8開啟也是這樣顯示,但是要調整控制項位置,還是用Blend比較方便):

 image

 

觀看線上Demo

(筆者只是一介Programmer,藝術天份明顯不足,所以畫面傷眼,請見諒JFBQ00125080320b )

 

 

Silverlight修煉,我們下次見!!

 

 

如果您有微軟技術開發的問題,可以到MSDN Forum發問。

如果您有微軟IT管理的問題,可以到TechNet Forum發問喔。