跳轉到內容

Introduction to .NET Framework 3.0/Windows Presentation Foundation

From Wikibooks, open books for an open world

Windows Presentation Foundation (代號:Avalon) 是 .NET Framework 3.0 中引入的一項新功能(一個演示平臺),它支援建立包含高解析度圖片和圖形的文件。WPF 還負責將圖片和媒體整合到普通文件中。目前,執行此功能的元件是 Windows 窗體。

什麼是 Windows Presentation Foundation
[編輯 | 編輯原始碼]

一種高效、統一的 UI、媒體和文件方法,可提供無與倫比的使用者體驗

WPF 基礎架構

[編輯 | 編輯原始碼]

Presentation Foundation 包含用於建立“列印”和“開啟檔案”對話方塊、編寫新視窗等的類。它大多數時候使用四個特定的類

  • UIElement
  • FrameworkElement
  • ContentElement
  • FrameworkContentElement

這些類有助於構建有效且易於使用的使用者介面。WPF UI 通常以元素樹的形式存在。WPF 中使用的元素樹有兩種型別

  • 邏輯樹
  • 視覺樹

元素樹通常在 XAML 中透過拖放和建立相關元素之間的關係來實現。在程式碼中,它們取決於我們如何為屬性提供屬性值。

邏輯樹涉及透過新增 listbox 標記並在標記內新增列表項來建立樹結構。在 DockPanel 的情況下,我們使用 Children 屬性。

視覺樹主要由想要干預程式底層低階元件的程式設計師使用。

標記和程式設計的結合

[編輯 | 編輯原始碼]

雖然建議使用 C# 等程式語言進行程式設計邏輯,但建議使用標記語言進行文字和 UI 程式設計。

在早期版本的 .NET 框架中,設計器部分與程式碼是分開的。但是,在 .NET 3.0 中,用 XAML 編寫的設計器部分和用 C# 編寫的邏輯都包含在同一個程式碼中。

XAML File
<Canvas ID="root“ xmlns="http://schemas.microsoft.com/2003/xaml“>
	<Button Click="Button_Click">Click Me!</Button>
</Canvas>

C# code-behind file 
using…
namespace Button
{
	public partial class Default : Panel
	{     // Event handler
		   void Button_Click (object sender, System.Windows.Controls.ClickEventArgs e)
 	       {    btn1.Background = System.Windows.Media.Brushes.Red;  }
	}
}

Windows Presentation Foundation 使使用者能夠建立高質量的圖形應用程式。您可以使用 <button> 標記新增現有或建立自定義按鈕,建立停靠面板、二維和三維圖形影像,使用顏色選擇器控制元件,建立或修改影像、影片,建立自定義媒體播放器等。

繪圖物件模型

[編輯 | 編輯原始碼]

WPF 圖形系統提供了一種全新的程式設計風格。使用基於 Win32 的 UI 技術,如果您想要繪製自定義圖形,則必須編寫程式碼以響應重繪請求,按需繪製詳細資訊。此程式碼有效地直接繪製到螢幕上。如果螢幕的該部分被另一個視窗遮擋,然後再次顯示,Windows 會發送一條訊息請求重繪此部分。如果您想要更改圖形的外觀,則需要指示 Windows 使螢幕的相關區域無效,以啟動重繪。

富文字格式

[編輯 | 編輯原始碼]

WPF 還幫助我們輕鬆建立格式化文字,因此可以使用富格式。內容包含在 <textblock> 標記中。

使用者事件可以使用觸發器輕鬆執行,觸發器使用 <trigger> 標記指定。除此之外,WPF 中還有許多其他新創新。

模板和樣式

[編輯 | 編輯原始碼]

模板有兩種型別:資料模板控制元件模板。控制元件模板定義控制元件的視覺結構。

語法

ControlTemplate x:Key=“MyButton” TargetType=“{x:Type Button}”>
    <Grid>
        <Ellipse />
        <ContentPresenter />
    </Grid>
</ControlTemplate>

相反,資料模板包含有關要儲存資料的規範。


語法

<DataTemplate DataType=“{x:Type PhotoObject}”>
    <Image Source=“{Binding FileName}” />
</ControlTemplate>

樣式用於指定所用按鈕的樣式。

<Style x:Key=“MyStyle” TargetType=“{x:Type Button}”>
</Style>

樣式也可以基於其他樣式。

Style x:Key=“MyStyle” BasedOn=“{StaticResource BaseStyle}” />
    <Setter Property=“Background” Value=“Green” />
</Style>

WPF 支援三種文件

  • 固定文件
  • 流文件
  • XPS 文件


WPF 引入了新概念,使文字與媒體檔案的整合更加容易。WPF 還支援早期版本不支援的各種字型。

固定文件

[編輯 | 編輯原始碼]

固定文件代表 WYSIWYG(“所見即所得”)原則。在這裡,您在螢幕上看到的內容表示頁面列印時在紙上獲得的實際版式。因此,即使是對版式的輕微更改也至關重要。

流文件

[編輯 | 編輯原始碼]

流文件是根據螢幕大小調整其大小、可讀性、尺寸等的文件格式。WPF 也支援此類文件。

XPS 文件

[編輯 | 編輯原始碼]

XPS 文件是文件在紙上外觀的精確表示。它們類似於文件本身的掃描影像。

  • 易用性 - 學習能力、效能、可靠性、安全性、最佳化形式因素、可讀性、相關性/情境化。
  • 豐富性 - 圖形和媒體、資料視覺化、更高保真度資訊、全球化、可訪問性、硬體和列印整合。

參考資料

[編輯 | 編輯原始碼]
  1. http://msdn2.microsoft.com/en-us/windowsvista/aa905016.aspx#Understanding%20Windows%20Presentation%20Foundation:%20Essential%20Concepts
  2. http://msdn2.microsoft.com/en-us/library/aa970268.aspx#Windows_Presentation_Foundation_Applications
  3. http://www.dotnet-u.com/
華夏公益教科書