走進WPF系列學習之一 如何建立、設計、執行與部署WPF應用程序


近在公司要用WPF做一個項目,以前都沒有怎么接觸過WPF,所以在接下來的一段日子里,我要好好研究研究WPF。我會把我在的學習過程,和學習心得記錄下來。一方面是對自己學習的總計,另一方面也可以讓像我一樣剛剛接觸WPF的同志們一個借鑒吧!好了下面正式開始吧。

簡介

WPF 為Windows Presentation Foundation的縮寫 ,意思是基於windows的圖形界面處理,其原來代號為“Avalon”,因“我佩服”拼音首字母組合一樣,國內有人調侃地稱之為“我佩服”。由 .NET Framework 3.0 開始引入,並且在以后的版本中都支持WPF,與 Windows Presentation Foundation及 Windows Workflow Foundation並行為新一代 Windows 操作系統以及 WinFX 的三個重大應用程序開發類庫。WPF是微軟新一代圖形系統,運行在.NET Framework 3.0即以上架構下,為用戶界面、2D/3D 圖形、文檔和媒體提供了統一的描述和操作方法。基於DirectX 9/10技術的WPF不僅帶來了前所未有的3D界面,而且其圖形向量渲染引擎也大大改進了傳統的2D界面,比如Vista中的半透明效果的窗體等都得益於WPF。 程序員在WPF的幫助下,要開發出媲美Mac程序的酷炫界面已不再是遙不可及的奢望。 WPF相對於Windows客戶端的開發來說,向前跨出了巨大的一步,它提供了超豐富的.NET UI 框架,集成了矢量圖形,豐富的流動文字支持flow text support,3D視覺效果和強大無比的控件模型框架。(摘自百科

WPF中主要是用基於XML的XAML語言來實現展示的。

何謂XAML

可擴展應用程序標記語言 (XAML) 是一種聲明性語言。具體來說,XAML 可以通過使用一種語言結構來顯示多個對象之間的分層關系,並使用一種后備類型約定來支持類型擴展,以初始化對象並設置對象的屬性。您可以使用聲明性 XAML 標記創建可見用戶界面 (UI) 元素。然后,您可以使用單獨的代碼隱藏文件來響應事件和處理您在 XAML 中聲明的對象。

XAML 文件是通常具有 .xaml 文件擴展名的 XML 文件。下面的實例演示了非常基本的XAML文件的內容:

<Window x:Class="WpfApplication1.Window1"
xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
Title
="Window1" Height="300" Width="300">
<Grid>
<Button Margin="44,104,44,101" Name="button1" Click="button1_Click">Button</Button>
<Button Margin="44, 20, 44, 200" Name="button2">Hello</Button>
</Grid>
</Window>
如何建立WPF應用程序

1.啟動Visual Studio 2010,選擇WPF Application,如圖:

在圖中標出來的兩種方式,其實都是用XMAL來表現的,只不過是瀏覽的方式不一樣。下面我把兩種形式都列舉出來了,並且相應Demo的源代碼都可以下載:

第一:WPF Application也就是C/S模式,跟Winfrom應用程序很相似,大家可以借助與對Winform 的理解來理解WPF Application應用程序。

在新建“WPF Application”項目后,呈現出來的是:

在屏幕中被分成了上、下兩部分,大家看起來一定很收悉把。下面就是用XAML語言表示的,同時它也可以用來控制上面的表現形式。

后台代碼:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
}

下面就舉一個小例子,在Design中放入兩個Button: 

XAML代碼:

<Window x:Class="WpfApplication1.Window1"
xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
Title
="Window1" Height="300" Width="300">
<Grid>
<Button Margin="44,104,44,101" Name="button1" Click="button1_Click">Button</Button>
<Button Margin="44, 20, 44, 200" Name="button2">Hello</Button>
</Grid>
</Window>

大家看到這里可能會有一種即收悉有又陌生的感覺,對,不錯沒有看到<asp:Button........................./>這樣的button。這就是XAML的魅力。我們可以通過設置button的屬性來控制Button的各種顯示,同時也可以編寫button的Click事件: 

        private void button1_Click(object sender, RoutedEventArgs e)
{
button1.Content = DateTime.Now.ToShortTimeString();
}

現在要設置Button上面顯示的文字后面的屬性不再是Text而變成了現在Content;這個Click事件的功能是:當點擊這個按鈕時按鈕上面的文字就變成了當前時間。運行結果如圖:

這里Demo很簡單,大家可以試着自己動手做一下。WPF Application 源碼下載

第二:WPFBrowserApplication 應用程序

B/s模式和WebFrom很相似,大家可以參考自己對asp.net的理解來理解.由於程序很簡單所以就不詳細講解了,我把它們最后運行的結果展現給大家看看:

WPFBrowserApplication 源碼下載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM