Introduction to .NET Framework 3.0/Windows Presentation Foundation
Windows Presentation Foundation (代号:Avalon) 是 .NET Framework 3.0 中引入的一项新功能(一个演示平台),它支持创建包含高分辨率图片和图形的文档。WPF 还负责将图片和媒体集成到普通文档中。目前,执行此功能的组件是 Windows 窗体。
一种高效、统一的 UI、媒体和文档方法,可提供无与伦比的用户体验
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 文档是文档在纸上外观的精确表示。它们类似于文档本身的扫描图像。
- 易用性 - 学习能力、性能、可靠性、安全性、优化形式因素、可读性、相关性/情境化。
- 丰富性 - 图形和媒体、数据可视化、更高保真度信息、全球化、可访问性、硬件和打印集成。