Windows Presentation Foundation (WPF) 是下一代显示系统,用于生成能带给用户震撼视觉体验的 Windows 客户端应用程序。使用 WPF,可以创建广泛的独立应用程序以及浏览器承载的应用程序。WPF 的核心是一个与分辨率无关并且基于向量的呈现引擎,旨在利用现代图形硬件的优势。WPF 通过一整套应用程序开发功能扩展了这个核心,这些功能包括 可扩展应用程序标记语言 (XAML)、控件、数据绑定、布局、二维和三维图形、动画、样式、模板、文档、媒体、文本和版式。
对于一个ASP.NET的开发人员来说,WPF的编程方式应该很熟悉了;WPF让界面和核心代码脱离,这个和ASP.NET的编程有所相似。在ASP.NET用HTML来呈现用户体验,而在WPF中使用XAML来呈现。无论是HTML还是XAML都是可扩展性标记语言XML的一个扩展。为了支持某些更强大的 WPF 功能并简化编程体验,WPF 包括了更多编程构造,这些编程构造增强了属性和事件:依赖项属性和路由事件。
应用程序
在WPF中可以分为独立的应用程序和浏览器应用程序。其中独立的应用程序和WindowForm一样,可以使用MessageBox等等方法;而浏览器应用程序,借助于浏览器IE来运行程序,称为 XAML 浏览器应用程序 (XBAP)。
WPF 应用程序既可以承载于 Internet Explorer 7 中,也可以承载于 Internet Explorer 8 中。WPF 提供了以下两个选项作为替代导航宿主:
-
Frame,用于承载页面或窗口中可导航内容的孤岛。
-
NavigationWindow,用于承载整个窗口中的可导航内容。
WPF 控件一览
此处列出了内置的 WPF 控件。
-
按钮:Button 和 RepeatButton。
-
对话框:OpenFileDialog、PrintDialog 和 SaveFileDialog。
-
数字墨迹:InkCanvas 和 InkPresenter。
-
文档:DocumentViewer、FlowDocumentPageViewer、FlowDocumentReader、FlowDocumentScrollViewer 和 StickyNoteControl。
-
输入:TextBox、RichTextBox 和 PasswordBox。
-
布局:Border、BulletDecorator、Canvas、DockPanel、Expander、Grid、GridView、GridSplitter、GroupBox、Panel、ResizeGrip、Separator、ScrollBar、ScrollViewer、StackPanel、Thumb、Viewbox、VirtualizingStackPanel、Window 和 WrapPanel。
-
媒体:Image、MediaElement 和 SoundPlayerAction。
-
菜单:ContextMenu、Menu 和 ToolBar。
-
导航:Frame、Hyperlink、Page、NavigationWindow 和 TabControl。
-
选择:CheckBox、ComboBox、ListBox、TreeView、RadioButton 和 Slider。
-
用户信息:AccessText、Label、Popup、ProgressBar、StatusBar、TextBlock 和 ToolTip。
布局系统通过基本 WPF 类公开给子控件。对于通用的布局,如网格、堆叠和停靠,WPF 包括了几个布局控件:
布局对于一个应用程序来说是相当重要的,这个和ASP.NET中的HTML呈现一样。根据布局中提供的一些控件的功能,合理选择控件才能够事半功倍!