国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

XAML開發入門之用VS2005開發XAML程序

2019-11-17 04:43:24
字體:
來源:轉載
供稿:網友

  假如我們使用Visual Studio 2005來開發一個XAML程序,那與上述的手動創建XAML程序過程來說是相對便捷的。你可以直接選擇一個WinFX模板來創建特定類型的WPF程序,Visual Studio會自動為該WPF程序創建相應的項目文件和應用程序清單。現在我們可以創建的WPF程序類型有如下的四種:

  1. WinFX Wndows application
  2. WinFX Web Browser Application
  3. WinFX Service Library
  4. WinFX Customer Control Library

  然而,針對WinFX開發的Visual Studio版本還沒有正式推出,所以Visual Studio 2005缺乏對WinFX程序開發這方面的一些完善支持,為此要編輯XAML和相應的代碼后置文件(.xaml.cs)時,有時還是需要開發人員手動地進行編輯。

  在這里假設你已經安裝好了運行XAML所需的軟件環境,現在我們來使用Visual Studio 2005創建一個WPF程序。至于是選擇WinFX Wndows Application模板還是WinFX Web Browser Application模板取決于你所要創建的是宿主于瀏覽器的程序還是窗體程序。現在我們在"新建項目"對話框中的WinFX Web Browser Application模板,輸入該WPF程序的項目名稱,并選擇好程序保存在硬盤上的位置,點擊"確定"按鈕,Visual Studio就自動為該WPF程序生成默認的XAML和代碼后置文件。

    XAML開發入門之用VS2005開發XAML程序(圖一)

  提示:無論你是否使用Visual Studio,在創建一個WinFX Wndows Application和一個WinFX Web Browser Application時,各自的.xaml文件代碼還是存在一些細微差別的。在一個Browser Application中,默認起始頁的根元素為Page。而一個Wndows Application中,默認起始頁的根元素為Window。而Window類是無法在Browser Application中使用的,這是因為運行在瀏覽器中的WPF程序是在部分信任的沙箱內操作(沙箱能夠防止客戶端計算機受到惡意應用程序的侵害),為此它沒有打開一個新Windows窗體的權限。

  在解決方案資源治理器窗口中,可以看到Visual Studio為當前WPF程序所自動生成的XAML和代碼后置文件。由于在Visual Studio中會自動生成相應的項目文件,使用我們不必具體了解該Browser Application在生成時其底層的實現細節。但是由于WPF程序和應用程序定義文件和相關的XAML頁面文件戚戚相關,為此最好還是具體了解下各個文件的具體內容,下面我們通過雙擊解決方案資源治理器中的文件圖標打開相應的文件,在默認狀態下,一個.xaml文件存在三個試圖方式,分別為設計試圖、XAML試圖和源碼試圖。假如要查看相應的XAML代碼的話,你可以點擊XAML按鈕切換到XAML試圖狀態下。這是打開應用程序定義文件App.xaml的相應界面:

  XAML開發入門之用VS2005開發XAML程序(圖二)

  XAML開發入門之用VS2005開發XAML程序(圖三)

  點擊XAML試圖按鈕后,App.xaml頁面對應的XAML代碼如下

01 <Application x:Class="BrowserDemo.App"
02 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/03 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
04 StartupUri="Page1.xaml"
05 >
06 <Application.Resources>
07
08 </Application.Resources>
09 </Application>
  在第1行代碼處我們可以看到,在應用程序定義文件中我們使用了Application元素,并且用x:Class 屬性指定了一個與之關聯的C#不完全類(后一個程序清單的第14行代碼所示),而后在程序編譯時,會自動將應用程序定義文件和包含關聯C#不完全類的代碼后置文件這兩部分結合在一起,從而創建一個完整的BrowserDemo命名空間下的App類,注重,BrowserDemo.App類是從WPF提供的System.Windows.Application類中派生的。第4行代碼使用了StartupUri屬性為該WPF程序指定首次運行程序時要加載的XAML頁面文件。在一個Browser Application類型的WPF程序中,我們可以添加多個XAML頁面,并支持在這些頁面間進行跳轉和切換。

  提示:

  而App.xaml.cs的代碼如下(可以通過App.xaml頁面的Source按鈕切換到源碼試圖):


01 using System;
02 using System.Windows;
03 using System.Windows.Navigation;
04 using System.Data;
05 using System.Xml;
06 using System.Configuration;
07
08 namespace BrowserDemo
09 {
10  /// <summary>
11  /// Interaction logic for App.xaml
12  /// </summary>
13
14  public partial class App : Application
15  {
16
17  }
18 }
  Page1.xaml頁面對應的XAML代碼如下:

01 <Page x:Class="BrowserDemo.Page1"
02 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
03 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
04 Title="Page1"
05 >
06 <Grid>
07 </Grid>
08 </Page>
  我們在第1行代碼處用x:Class屬性指定的BrowserDemo.App類是從WPF提供的System.Windows.Application類中派生的,并且用屬性Title指定了該頁面在呈現時的標題。第6-8行代碼使用了一個Grid元素,微軟推薦開發人員使用該元素來布局XAML頁面上的各個界面元素,這是因為Grid元素在定位頁面上的各個元素方面有著極大的靈活性,至于該元素的具體用法將在本章的后續章節進行介紹。

01 using System;
02 using System.Collections.Generic;
03 using System.Text;
04 using System.Windows;
05 using System.Windows.Controls;
06 using System.Windows.Data;
07 using System.Windows.Documents;
08 using System.Windows.Input;
09 using System.Windows.Media;
10 using System.Windows.Media.Imaging;
11 using System.Windows.Navigation;
12 using System.Windows.Shapes;
13
14 namespace BrowserDemo
15 {
16  /// <summary>
17  /// Interaction logic for Page1.xaml
18  /// </summary>
19
20  public partial class Page1 : Page
21  {
22
23   public Page1()
24   {
25    InitializeComponent();
26   }
27
28  }
29 }
QQread.com 推出各大專業服務器評測 linux服務器的安全性能 SUN服務器 HP服務器 DELL服務器 IBM服務器 聯想服務器 浪潮服務器 曙光服務器 同方服務器 華碩服務器 寶德服務器
  現在我們在這個Browser Application的Page1.xaml頁面上添加一個按鈕,并對該按鈕的單擊事件添加一個事件處理方法以顯示信息。首先我們在工具箱上拖拽一個Button控件,切換到XAML視圖后,你會發現在<Grid>…</Grid>兩元素之間添加了一個Button元素,我們可以設置其相應的屬性,最終Page1.xaml的代碼如下:

01 <Page x:Class="BrowserDemo.Page1"
02 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
03 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
04 Title="Page1"
05 >
06 <Grid>
07 <Button Height="100" Width="300" FontSize="24" Background="Aqua"
08 Name="MyButton" Content="Click Me" Click="ChangeMe" >
09 </Button>
10 </Grid>
11 </Page>
  由于要處理按鈕的單擊事件,為此我們要編寫相應的事件處理方法。其代碼如下


01 void ChangeMe(object sender, RoutedEventArgs eventArgs)
02 {
03  count++;
04  MyButton.Content = "You have clicked " + count + " times!";
05 }
  如上述的代碼所示,我們每點擊一次按鈕,都會導致該按鈕上顯示的內容發生改變(每次count的值都自增1)。

  而事件處理代碼我們一般是在XAML頁面對應的代碼后置文件中進行編寫。我們將事件處理代碼要添加到Page1.xaml頁面的代碼后置文件Page1.xaml.cs中,改變后的代碼如下:

01 using System;
02 using System.Collections.Generic;
03 using System.Text;
04 using System.Windows;
05 using System.Windows.Controls;
06 using System.Windows.Data;
07 using System.Windows.Documents;
08 using System.Windows.Input;
09 using System.Windows.Media;
10 using System.Windows.Media.Imaging;
11 using System.Windows.Navigation;
12 using System.Windows.Shapes;
13
14 namespace BrowserDemo
15 {
16  /// <summary>
17  /// Interaction logic for Page1.xaml
18  /// </summary>
19
20  public partial class Page1 : Page
21  {
22   int count = 0;
23   public Page1()
24   {
25    InitializeComponent();
26   }
27
28   void ChangeMe(object sender, RoutedEventArgs e)
29   {
30    count++;
31    MyButton.Content = "You have clicked " + count + " times!";
32   }
33  }
34 }
  我們在第22行定義了一個名為count的變量,并初始化其值為0。在第28行代碼處是Button按鈕的事件處理方法,這里的事件處理方法名ChangeMe就是由Page1.xaml中的Button元素的Click指定的。因為在一個WPF程序中可能包含若干個Button元素,所以你可以在XAML文件用Name屬性為該Button元素指定一個惟一的名稱,這里為MyButton。以后在對應的代碼后置文件中應用該Button元素時,就不用再對這個元素進行聲明了。并且在編譯時,Button元素的聲明和相應的事件處理方法將"合并"到同一個類中,這里為BrowserDemo.Page1。

  提示:在添加了元素和相應的處理方法、邏輯后,我們就可以采用和以前類似的用Visual Studio生成.NET應用程序的方式來生成WPF程序。也就是說我們可以使用Visual Studio菜單上的"生成"-"生成XX"(XX為項目名)命令來編譯程序,編譯完畢后,就可以對該程序進行測試、調試和部署。

  保存文件的最后一次改動后,再使用"啟動調試"按鈕生成該Browser Application程序,最后得到的呈現效果如下:

XAML開發入門之用VS2005開發XAML程序(圖四)

  下圖是點擊按鈕10次后的顯示效果:

XAML開發入門之用VS2005開發XAML程序(圖五)

  上述的整個實現過程對于.NET開發人員來說應該是非常熟悉的,因為XAML頁面有點類似于asp.net中的Web窗體,都是用來構建程序的界面布局。而XAML頁面對應的代碼后置文件則等類似于ASP.NET中用來處理事件和用戶請求信息的服務器端代碼。

  我們在前面提及過,使用Visual Studio來創建一個WPF程序時,無需開發人員編寫項目文件,而且也不用考慮微軟新一代統一生成平臺MSBuild的運作方式。上述的這些必需的文件都會由Visual Studio自動給開發人員生成,你僅需考慮WPF程序中的應用程序定義文件和XAML頁面文件即可。

XAML開發入門之用VS2005開發XAML程序(圖六)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鲜城| 拉萨市| 民丰县| 尖扎县| 浏阳市| 留坝县| 徐闻县| 弥渡县| 彝良县| 利津县| 河北省| 普宁市| 岢岚县| 石渠县| 津南区| 正定县| 姜堰市| 桂林市| 交城县| 三台县| 牡丹江市| 宜州市| 保山市| 台南市| 武安市| 清苑县| 南宫市| 陆河县| 德州市| 新绛县| 丹凤县| 原阳县| 多伦县| 罗甸县| 大连市| 衡南县| 镇巴县| 石门县| 卓资县| 永济市| 达日县|