精品推荐
用WPF构建强大的用户体验
日期:2007年8月16日 作者: 查看:[大字体
中字体 小字体 ]
在Windows Presentation Foundation中,窗体就是Window。通常情况下,在标准的应用程序中,窗体是寄宿内容的核心单位。在Visual Studio 2005中你可以选择"项目 添加新项 WinFX Window"给项目增加一个窗体定义,它会产生下面的内容: <!--MainWindow.xaml (markup)--> <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="BoxApplication.MainWindow" </Window> // MainWindow.xaml.cs (codebehind) using System.Windows; public partial class MainWindow : Window { ... } 在添加窗体定义之后,Visual Studio 2005自动地把标记文件的"构建类型"设置为Page(页面)。在构建的时候,该标记被转换为一种特定的资源类型,可以被统一的资源标识符(URI)唯一地识别出来。从本质上说,这使得Windows Presentation Foundation可以使用URI宣告式地载入一个窗体,你可以使用这种能力来指定一个应用程序启动时自动打开的窗体。要达到这个目的,只需要设置标记中的Application.StartupUri属性,如下所示: <!--App.xaml (markup)--> <Application ... StartupUri="MainWindow.xaml" /> 上面的代码建立和显示了一个如图3所示的窗体。与所有其它窗体类似,Windows Presentation Foundation窗体包含客户端区域(它里面放置Windows Presentation Foundation内容和控件)和非客户端区域(边框、标题条、以及一些与此相关的修饰部分)。
图3:窗体和它的各部分
Application.StartupUri指定的窗体是非模态的,这意味着它不会阻止用户使用应用程序中的其它窗体。如果你需要显示其它的非模态窗体,你只需要调用Window.Show: // MainWindow.xaml.cs (codebehind) public partial class MainWindow : Window { void helpContentsMenuItem_Click(object sender, RoutedEventArgs e) { HelpWindow window = new HelpWindow(); window.Owner = this; // 确保窗体总是显示在本窗体之上 window.Show(); } ... } Windows Presentation Foundation也支持显示模式窗体,即阻止用户使用应用程序中其它窗体的窗体。典型情况下(不是一定的),模式窗体一般被当作对话框使用,用来收集完成某项事务(例如创建订单)所需要的数据。在Windows Presentation Foundation中显示模式窗体,需要调用Window.ShowDialog(如下代码所示)。 代码:调用Window.ShowDialog // MainWindow.xaml.cs (codebehind) public partial class MainWindow : Window { void CreateOrder() { OrderABoxDialog dlg = new OrderABoxDialog(); dlg.Owner = this; // 确保对话框一直处于本窗体之上 bool dialogResult = dlg.ShowDialog(); // 如果订单的细节信息都是争取的,就向订单列表添加订单 if (dialogResult == true) { this.orders.Add(dlg.Order); } } ... } Window类也支持典型的对话框行为,允许用户接受或终止一个对话框,并且可以把用户的选择返回给调用代码以供处理。 消息框是一种特殊的、给用户显示信息或者询问用户的对话框,Windows Presentation Foundation的MessageBox类型支持它: // MainWindow.xaml.cs (codebehind) public partial class MainWindow : Window { void aboutMenuItem_Click(object sender, RoutedEventArgs e) { MessageBox.Show("Box Application, Version 1.0");
复制本页网址和标题,发送给你QQ/Msn的好友一起分享
上一篇:XAML开发入门之XAML的五大元素
下一篇:XAML开发入门之附加属性和绑定属性
用WPF构建强大的用户体验 相关文章:
用WPF构建强大的用户体验 相关软件: