查看單個文章
舊 2006-10-19, 03:26 AM   #19 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

 Avalon應用程式
  首先,選中Avalon應用程式模板並點擊「確定」。你將看到預定的Window1.xaml視窗和圖6所示的解決方案瀏覽器。
http://dev.yesky.com/imagelist/05/11/7389xdqrx86q.jpg
圖6:Avalon應用程式專案。這個抓圖顯示了Visual Studio 為Avalon應用程式模板建立的模板
  請注意,Avalon應用程式專案類型的根元素是Window。除了我們在上一部分討論的StackPanel和DockPanel之外,你還可以使用Grid元素對視窗中的控件進行定位。Window1.xaml.vb是網頁面後台的代碼,也是你編寫應用程式代碼的地方。Window元素中的x:Class內容指定了類的名稱。在編譯階段,這個網頁面會被編譯為一個局部(partial)類,與後台代碼(Window1.xaml.vb)一起形成完整的應用程式。
  複製列表1中的代碼並替換Window1.xaml文件中的Grid元素。在Button元素中,增加Click內容並設置它的值(圖7所示)。
http://dev.yesky.com/imagelist/05/11/eg4m233uvox5.jpg
圖7:設置點擊事件。給Button(按鍵)元素新增一個事件
  從本質來看,你為按鍵控件建立了一個事件處理程式。當按鍵被點擊的時候,ButtonClick事件會處理這個點擊事件。如果你要完善這個事件,請雙擊解決方案瀏覽器中的Window1.xaml.vb。你會看到兩個示例事件都被註釋了。取消ButtonClick事件的註釋並刪除該事件處理程式末尾的Handles子句。ButtonClick事件現在應該是這樣的:
' Button1的事件處理程式
Private Sub ButtonClick(ByVal sender As Object, ByVal e As RoutedEventArgs)
End Sub
  對於這個例子來說,我們只需要簡單地顯示一個「Hello World!」消息,看看事件處理程式是否起作用了。在未來一些文章中我將仔細地解釋這個特性。
' Button1的事件處理程式
Private Sub ButtonClick(ByVal sender As Object, _
ByVal e As RoutedEventArgs)
 ' 新增下面的內容
 MsgBox("Hello World!")
End Sub
  我們完成了!現在按F5執行應用程式。你將看到應用程式視窗,當你點擊OK按鍵的時候,會看到一個消息框(圖8所示)。
http://dev.yesky.com/imagelist/05/11/gv4vk98fxhgg.jpg
圖8:測試應用程式,你的第一個Avalon應用程式
  現在點擊視窗上的「Page 2」連接,沒有發生任何事情。這是因為Avalon應用程式專案類型不支持響導。你必須像傳統的Windows應用程式一樣打開新視窗。
  停止除錯並給應用程式新增一個新的Avalon視窗(在解決方案瀏覽器中右鍵點擊專案名稱,並選擇新增->新專案)。選擇Avalon視窗模板並新增「新增」(圖9所示)。
http://dev.yesky.com/imagelist/05/11/o7qyyxg67n9x.jpg
圖9:放入一個窗體。這個抓圖顯示了如何給專案新增一個新的Avalon窗體。
  你的專案現在有兩個視窗了(圖10所示)——Window1.xaml和Window2.xaml。
http://dev.yesky.com/imagelist/05/11/oikg8p6h9h92.jpg
圖10:兩個窗體。它顯示了專案中的文件。
  應用程式中的每個窗體都有一組Window.xaml文件。
  我們修改ButtonClick事件:
Private Sub ButtonClick(ByVal sender As Object, _
ByVal e As RoutedEventArgs)
 Dim win2 As New Window2
 win2.Show()
End Sub
  按F5除錯應用程式並再次點擊OK按鍵。你現在會看到新視窗出現了(圖11所示)。
http://dev.yesky.com/imagelist/05/11/937bx3e0gm2f.jpg
圖11:下一個窗體。點擊按鍵打開一個新窗體。




Avalon Express應用程式
  Avalon Express應用程式會寄宿在Internet瀏覽器中。我們使用Visual Studio 2005,通過選擇Avalon Express應用程式模板來建立Avalon Express應用程式。
  在預定情況下,它會建立Page1.xaml(圖12所示)。
http://dev.yesky.com/imagelist/05/11/6jqa68h3cfc0.jpg
圖12:Visual Studio為Avalon Express應用程式模板建立的模板
  請注意該XAML網頁面的根元素是Page,而不是Window。同樣,我們用列表1中的內容替換Grid元素。在解決方案瀏覽器中右鍵點擊專案,選擇新增->新專案給專案新增一個新的網頁面。在「新增新專案」交談視窗中,選擇Avalon網頁面(圖13所示),預定的名稱不改。點擊「新增」。
http://dev.yesky.com/imagelist/05/11/ur497747h5p6.jpg
圖13:從「新增新專案」交談視窗中選擇Avalon網頁面給專案新增一個新的Avalon網頁面。
  按F5除錯應用程式。Internet瀏覽器會載入,應用程式的樣子如圖14所示。
http://dev.yesky.com/imagelist/05/11/psp09jd55sku.jpg
圖14:在IE中。這個抓圖再次顯示了該應用程式,不過這次是寄宿在IE中。
  這種專案類型的一個有趣的特性是,你如果仍然使用MsgBox()函數來顯示消息框,它還是可以工作的。
  請注意應用程式上方的響導按鍵(圖15所示)。這兩個按鍵允許你在網頁面之間進行響導,與瀏覽Web網頁面類似。
http://dev.yesky.com/imagelist/05/11/12vzicxj9vw3.jpg
圖15:響導按鍵。
  在Express專案中Avalon為你建立了傳統瀏覽器樣式模板的動畫按鍵
  如果你想看到網頁面響導是如何工作的,請點擊「Page 2」連接,它會載入Page2.xaml。對於Avalon Express應用程式專案類型來說,所有的響導都發生在瀏覽器之中;不會建立新視窗。你可以通過點擊Page2.xaml.的「後退」響導按鍵返回到前一個網頁面(Page1.xaml)。
  Avalon響導應用程式

  Avalon應用程式的第三種類型就是Avalon響導應用程式,它可能會成為最普遍的Avalon應用程式類型。使用Visual Studio 2005,選擇Avalon響導應用程式模板即可建立新的Avalon響導應用程式。
  與Avalon Express應用程式類似,在預定情況下會建立Page1.xaml網頁面。像上面一樣,用列表1中的內容替換Grid元素。給專案新增一個新的網頁面。在「新增新專案」交談視窗中選擇Avalon網頁面,預定名稱不改。點擊「新增」。
  按F5除錯應用程式。這一次應用程式沒有寄宿在IE中,它有自己的視窗,與IE非常相似(圖16所示)。
http://dev.yesky.com/imagelist/05/11/9ln7rggfhpdo.jpg
圖16:執行應用程式。這是最終的應用程式。
  點擊「Page 2」連接會載入Page2.xaml。如果要返回前面一個網頁面,只需要點擊「後退」響導按鍵。
  與Avalon Express應用程式專案類型相似,Avalon響導應用程式中的所有響導會在視窗內部發生,不會建立新視窗。
  在本文中,你看到了Avalon的一些基礎知識,以及XAML在建立Avalon應用程式UI的過程中是扮演什麼樣的角色。你還看到了幾種不同的Avalon應用程式類型以及它們之間的差別。但是,這僅僅是冰山一角。
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次