科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件用WPF构建强大的用户体验

用WPF构建强大的用户体验

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

标准的应用程序自然地支持菜单驱动导航,而浏览器应用程序自然地支持超链接导航。但是Windows Presentation Foundation应用程序模型能够让两者混合。

作者:陶刚编译 来源:天极开发 2007年11月3日

关键字: WPF 构建 用户体验

  • 评论
  • 分享微博
  • 分享邮件
用户体验是内容(content)和内容寄宿(host)方式的综合结果。在Windows Presentation Foundation中,内容是用标准控件、2D和3D图像、动画、数据绑定、布局、样式和模板来创建的。但是,只有当我们采用某种方式把这些内容寄宿起来(允许用户看到内容并与内容进行交互操作)的时候,它们才有意义。我们必须把这些内容"包装"到一个应用程序中,并通过一个窗体来显示它们。因此应用程序模型就可以派上用场了。

  Windows Presentation Foundation应用程序模型有两种应用程序类型:标准的和浏览器的。标准应用程序通过自己的窗体、对话框和消息框显示内容,而浏览器应用程序由寄宿在浏览器中的页面组成。

  类似地,Windows Presentation Foundation也包含两种导航模式:菜单驱动的和超链接驱动的。菜单驱动的应用程序允许用户使用菜单条、工具条、窗体和对话框导航到某些内容和功能。超链接驱动的应用程序使用超链接来传递导航体验,与Web应用程序类似。

  很明显,标准的应用程序自然地支持菜单驱动导航,而浏览器应用程序自然地支持超链接导航。但是Windows Presentation Foundation应用程序模型能够让两者混合。在大多数情况下,它可以把超链接驱动的体验部分地或者全部地集成到标准应用程序中。这种基于用户体验类型的合并会使用户受益。一旦你决定了自己希望提供的用户体验,就可以使用Windows Presentation Foundation模型来建立应用程序了。

  应用程序的类型

  我们来看看示例Box应用程序,如图1所示。这是一个标准的、菜单驱动的应用程序,允许用户根据需求列举、排序、查看和删除盒子订单。为了提供这种用户体验,你必须从应用程序模型积木结构的基础开始:建立一个应用程序。


图1:Box应用程序

  基于Windows的应用程序由一些标准的管线(plumbing)组成,包括一个入口点和一个消息循环,也可能需要下面的通用应用程序服务中一个或多个:

  · 处理命令行参数

  · 返回退出代码

  · 应用程序范围的状态信息

  · 检测和响应未处理的异常

  · 管理应用程序的生命周期

  Windows Presentation Foundation把管线和服务集中在一个类型(System.Windows.Application)中了,你可以在标记(XAML)、代码(C#或 Visual Basic)、或者两者组合(标记和后台代码)中使用它。Application类型变得如此重要,以至于Visual Studio 2005会自动地向每个新的.NET Framework 3.0(以前的WinFX)窗体应用程序项目添加该类型的一个实例:

<!--App.xaml (markup)-->
<Application
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="BoxApplicationWindow.App"
/>

// App.xaml.cs (后台代码)
public partial class App : Application { ... }

  如果你使用以前的Windows显示技术编写过程序(例如Windows窗体和Win32),你可能会很惊讶。这儿根本就没有一段代码与建立标准的基于Windows的应用程序管道(包括入口点)的代码相似。这是因为Visual Studio 2005已经为你建立了应用程序管道,它是在配置应用程序标记文件的"应用程序定义"构建操作(build action)的时候完成这项工作的,如图2所示。


图2:设置应用程序的XAML文件

  在后台,它生成的代码与下面的类似:

// App.cs
using System;

public partial class App : Application
{
 [STAThread]
 public static void Main()
 {
  // 初始化和运行应用程序
  App application = new App();
  application.Run();
 }
}

  Visual Studio 2005到底创建了什么内容都是无关紧要的,因为你既不需要编写也不需要理解它的复杂性。作为代替的是,到此为止,你被微软显示技术中的大多数应用程序抽象给隔离了,你可以使用它和少量标记来建立一个可运行的应用程序。你所需要做的只是使用Application的服务。对于独立的应用程序来说,这包括在应用程序开始运行时显示一个窗体。
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章