使用VS2010为Windows7编写一个杀手级WPF应用

  当你使用最新的操作系统,在最新的框架上构建应用程序,并且使用最新版本的Visual Studio的时候,你可以使用许多令人兴奋的新特性。你可以学习一下怎样使用Visual Studio 2010, WPF 4 和 the Windows API Code Pack给你的应用程序添加Windows 7 UI。

  Windows 7 UI有很多令人兴奋的元素,例如:全新的任务栏,或者跳转列表,视觉体验本身并不属于应用程序的范畴,但是它是应用程序体验的重要组成部分。作为一个WPF开发者,你可以把那些元素添加到你的Windows7应用程序中,随心所欲地定制它们在主窗口内部和外部的行为。

  使用WPF4,你几乎可以访问所有的Windows 7 UI特性。WPF4内置了对Windows7任务栏的支持,其中包括可以自定义的缩略图预览,通过进度条和“图标覆盖”(icon overlay)从任务栏获得视觉反馈,以及可以自定义的跳转列表。虽然这些特性最终是通过Windows 7的原生API来提供的,但是WPF用托管的代码对它们进行了封装,通过WPF类的形式把它们暴露出来。这意味着你可以在XAML中创建跳转列表对象和其他的UI对象,并且可以通过许多依赖属性(dependency property)来绑定它们。

  Visual Studio 2010本身就包含许多和WPF有关的新特性,其中包括一个全新的可视化设计器,拖放式的数据绑定,以及在XAML中的标记扩展的智能感知。这些特性已经和WPF的任务栏类整合到一起了,它们可以让你充分地利用Visual Studio的最新版本的全部功能,来构建时尚的Windows7应用程序。

  虽然WPF4对任务栏有很好的支持,但是,还有一些其他方面的Windows 7 API它并没有封装。例如:Windows7样式的通用对话框。你只能使用Windows API Code Pack和一个外部的托管封装库在WPF中访问这些API。Windows API Code Pack有它自己的一套shell和任务栏类,在WPF 3.5 SP1中也可以使用它们。

  (Windows API Code Pack的下载地址:http://code.msdn.microsoft.com/WindowsAPICodePack

  数据绑定和Visual Studio 2010的WPF设计器

  在接触Windows7的新特性以前,让我们先来看一看在全新的Visual Studio 2010的WPF设计器中的一个基础的数据驱动的WPF应用程序。在Visual Studio 2010中,你可以在设计的时候通过把数据源拖放到可视化的设计器中的方式来创建数据绑定。

  如果你把一个数据源项拖放到一个现有的控件上(例如,把一个文本字段拖放到一个文本框中),那么设计器会为那个数据源创建一个窗口资源,然后把这个字段绑定到那个控件上。如果你把一个数据源项拖放到一个容器上,那么设计器会创建一个相应的绑定控件,然后把这个控件添加到那个容器中。如果默认的类型并不合适,你可以自己设置这个绑定控件的类型。在截图1中,我把一个来自于AdventureWorks 2008样例数据库的数据表拖放到一个窗口中,设计器自动地创建了一个数据网格控件。当我们开发在Windows7任务栏上显示进度的功能的时候,我们将会用到这个数据网格。

生成了一个数据网格控件

(截图1:把一个表数据源拖放到主窗口上,会生成了一个数据网格控件)

  除了基础的创建之外,我们还做了一点额外的工作,我们使用渐变式的画刷来设置窗口的背景。Visual Studio 2010内置了一个可视化的画刷编辑器,这让创建和使用渐变式的画刷,图像画刷,以及纯色的画刷变得更加容易了。在一个画刷属性的属性编辑器上下拉可以直接在编辑器中看到反馈,这可以让你以可视化的方式创建渐变式的画刷,或者为一个图像画刷选择一个图像。

使用可视化的画刷编辑器创建一个背景画刷

(截图2:使用可视化的画刷编辑器创建一个背景画刷。)

  和Windows7的任务栏进行交互

  在Windows7中,你可以通过一个横跨任务项背景的进度条,在任务栏上显示需要长时间才能完成的操作的进度。InterNET Explorer使用任务栏进度条来跟踪文件的下载情况就是一个很好的例子。

  你可以通过TaskbarItemInfo类和Windows7的任务栏进行交互,在主窗口上,这个类是通过一个依赖属性暴露出来的。你可以在XAML中创建一个TaskbarItemInfo对象:

   1. <Window.TaskbarItemInfo> 
2. <TaskbarItemInfo x:Name="TaskbarItemInfo1"
Description
="Customer Browser: Using WPF 4 on Windows 7”>
3. </TaskbarItemInfo>
4. </Window.TaskbarItemInfo>

NET技术使用VS2010为Windows7编写一个杀手级WPF应用,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。