天天看點

.NET 3.0 WPF工具及應用

 作者:IT168 微山譯 原文:http://tech.it168.com/msoft/2007-09-14/200709140949325.shtml

   介紹

    可擴充應用标記語言(XAML)即将來臨,對那些沒有聽過XAML的人而言,它是一種為微軟新的表示層編寫代碼的方式,也就是視窗表示基礎(WPF,代号Avalon)。

    XAML是XML類型的标記語言,負責表示圖形元素,很類似于HTML标記。

    我們可以在很多工具中開發XAML代碼,比如Zam3D,和.NET Framework 3.0 SDK一起提供的 XAMLPad,Visual Studio 2005,,以及Expression Blend(以前的Expression Inte)。

    我認為XAML的一個設計思想就是圖形終端可以有一些藝術設計者來開發,然後程式設計人員根據這些藝術代碼編寫.NET代碼,進而驅動互動界面。利用同一種語言——XAML,圖形設計者和軟體開發人員可以自由地轉換工作。

    總之,這是一個基本的思想,但不是我這篇文章的主要内容。在這篇文章中,我想展示一下利用XAML能夠幹什麼,可以用什麼工具來建立XAML,以及應該怎麼使用這些工具。我同樣會解釋我是怎麼完成示範程式中的各個不同部分的。

     我不會講怎麼掌握XAML,而是完全專注于介紹一些主流的XAML工具。如果确實不能通過CAMEL來了解XAML,建議你看看  XAML Resources上Marc Clifton的文章,這些文章能讓你學得快點。下面是這篇文章包含的内容:

1. CIDER

主要讨論Visual Studio的CIDER,它讓VS使用者僅僅通過工具箱的拖拽就可以友善的建立XAML設計,就像在.NET 2.0的工程裡一樣。

2. Expression BLEND

簡要介紹Expression BLEND外表特征。

3. 用 Expression BLEND 建立示範程式 (附件)

示範程式的片段,以及怎麼樣和BLEND內建。

4. Visual Studio 2005 綜合

把一個BLEND(EID, Sparkle)的工程放到Visual Studio 2005。這應該足夠我們開始的了,那麼,我們前進吧。

5. 代碼

對,就是技術,代碼。

文章代碼描述

我也隻是在2天前才開始看XAML(這之前我草草浏覽了一下,但沒有仔細看)。為了寫這篇文章,我決定嘗試利用已有的工具來建立應用程式,畢竟這些工具可以立馬産生XAML代碼,為什麼不用它們呢?我并不是說我們都需要熟悉XAML,假設我們以後會吧,但是在我看完Charles Petzold的——Applications = Code + Markup(一共1002頁)之前,我隻是想看看能夠利用工具完成什麼事情,這也是大多數人在他們的日常工作中的任務。

是以這篇文章就像一個人到陌生地方的旅行。我對最後完成的東西感到很高興。事實上,正文就描述了我計劃要完成的事情。附件中的app檔案展示了XAML的下列概念:

附件程式的功能:

• 按鈕控件的使用者模闆

• 滑動條控件的使用者模闆

• 滑動條和文本框的資料綁定

• 文本框透明度

• 滑鼠點選時按鈕的反應

• 滑鼠點選時文本的反應

• 播放使用者選擇的多媒體

下面這張圖是應用程式運作時的樣子,雖然從靜态的螢幕截圖上還區分不出那些是活動的。稍後我會更加詳細地描述應用程式的功能,并在需要的地方配上螢幕截圖。

    對有些人來說這還不夠留下深刻影響,但是我向你保證,這裡有很多漂亮優雅的素材,你可以用真實的應用程式來看看哪些是活動的,它們是怎麼搭配起來的。你可以稍後下載下傳app檔案,但是現在我們繼續讀下去吧,來體驗一下XAML的樂趣。

先決條件

    在讀下去之前,如果想運作附帶的程式,你必須至少具有以下條件:

• Microsoft .NET Framework 3.0

• Visual Studio 2005

• 配置夠好的機器,有足夠的RAM (最好有1GB的空餘記憶體)

    如果你想看看CIDER,可以在這裡獲得。

1. Cider

    我們先通過使用Cider來簡要介紹一下WPF。Cider是Visual Studio的一個附加部分,用于建立WPF應用程式。我希望通過Cider,我們能夠慢慢進入WPF的世界,并且盼望讀到這篇文章的其它有趣的部分。

    隻要你安裝了所有要求的軟體,并安裝了Cider,你就會在Visual Studio中看到建立新的WPF應用的選項。我們可以看到,在啟動Visual Studio時,有一個工程選項是WPF工程,如下圖所示。

.NET 3.0 WPF工具及應用

    如果我們選擇接受,就可以繼續建立一個WPF應用。可以看到,一旦Visual Studio載入,在正常界面就會有一些新的标簽,像下面圖中的那樣,我們有Design/Xaml标簽。

.NET 3.0 WPF工具及應用

    這個标簽用于在圖形設計和XAML代碼之間切換(一般來說是先進行圖形設計,當然你可以根據你需要選擇)來看看面闆中的代碼吧,這些代碼為我們建立了一個新的WPF應用程式。Visual Studio / Cider為我們提供了下面的叫做Windows1.XAML的XAML代碼。

.NET 3.0 WPF工具及應用

   這就是XAML用于描述使用者界面的标記,但是不是還有一些代碼來幫助我們了解呢?對,是的,有一個.NET代碼檔案(本例是C#)。就像下面這樣的代碼段(Window1.XAML.cs)

.NET 3.0 WPF工具及應用

    這還不會引起恐慌,事實上,隻要用過ASP.NET的人都會對檔案裡面的代碼感到高興,這很相似,不是嗎?基本上,所有的表達部分以及它們的标記都在一個檔案中(.XAML),邏輯部分的代碼在另外一個檔案中。(.XAML.CS或者如果你用的是VB.NET,就是.XAML.VB檔案)。下一步我們就真正地在這個頁面上加一些部件,怎麼樣?     選擇Design标簽,工具欄就會有很多可以拖到窗體工作區的控件。

.NET 3.0 WPF工具及應用

    這個例子就是放置一個WrapPanel,當它被放置之後會産生下面的語句.

.NET 3.0 WPF工具及應用

    元素的開始和結束都在同一行。這顯得很沒有效率,因為WrapPanel是一個容器,我們該怎麼讓它包含其它的控件呢?我們選擇Xaml标簽(這會清除工具欄中的控件,别擔心,隻要點選Design标簽,它們就會回來),把WrapPanel元素從中分開,這樣開始和結束部分就被分到不同的行裡。然後把滑鼠移動到WrapPanel的開始和結束部分之間,轉換到設計視角,再從工具欄拖一些控件(按鈕)到WrapPanel去。變!WrapPanel立馬就擁有了幾個按鈕,并且按照合适的方式排放着。

    值得注意的是,使用Cider,我們可以點選一個控件,然後改變它的屬性,就像我們在.NET 2.0的應用裡使用屬性視窗一樣。但是這些屬性并不完全一樣的,其中一些類甚至完全不同,比如說MessageBox,它捕捉新的事件,并傳回一個新的MessageBoxResult對象。記得這點哦。

    當然,這顯然是個認為的例子,隻是想簡單介紹一下Cider。你可以用這個素材來進行實驗,這隻是讓你知道你可以在一個熟悉安全的好環境裡完成這個例子,這個環境叫做Visual Studio。如果你想學習更多的XAML概念和其它的XAML資源呢?繼續讀第2篇吧。

繼續閱讀