构建简单的WPF应用程序_第1页
构建简单的WPF应用程序_第2页
构建简单的WPF应用程序_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

构建简单的WPF应用程序为进一步加深读者理解,在本文中,笔者将首先讲解WPF的体系架构、类层次,然后介绍创立WPF应用程序的开发工具,最后通过一个简单的例如说明构建WPF应用程序的根本方法,以及WPF应用程序的编程模式。1.体系架构WPF主要包括三个局部:PresentationFramework、PresentationCore和milcore。其中前两者由受管模块组成,而milcore是非受管模块。如图1显示了WPF体系架构。图1中所示红色局部显示了构成WPF主要的组件。让我们由下向上的说明。最底层是Kernel,它负责控制和管理与图形驱动相关的最底层任务等。在Kernel之上也是两个比拟底层的模块。其中,User32负责确定显示窗口及其在屏幕中的位置状态等,其并不参与常见控件的呈现。DirectX负责呈现窗口和内容等。milcore是WPF的核心局部,它主要起到中间人的作用,以实现WPF与DirectX的通信。再向上是.NET3.0的公共语言运行时CLR〔CommonLanguageRuntime〕。最高层是WPF的另两个核心PresentationFramework和PresentationCore,它们都是受管模块。前者主要包括WPF的窗口、面板、样式等高层WPF类型。后者主要包括WPF的一些根本类型,例如UIElement,Visual等。它们是PresentationFramework所包括元素的基类。上文所述WPF的三个核心局部分别对应一些动态库,例如PresentationFramework.dll、PresentationCore.dll和milcore.dll。这些动态库中包含了众多实现WPF核心功能的类和命名空间。下面介绍有关的WPF类层次。2.类层次虽然读者可以花费很多时间在MSDN中查找和学习与WPF有关的类,但是这显然是一种效率很低的方法。因此,了解WPF的类层次对于开发人员创立WPF应用程序意义重大。如图2显示了WPF的类层次。如图2所示,WPF类层次中主要包括:System.Threading.DispatcherObject、System.Windows.DependencyObject、System.Windows.Media.Visual、System.Windows.UIElement、System.Windows.FrameworkElement和System.Windows.Controls.Control。这些内容与PresentationFramework、PresentationCore有关,其中FrameworkElement和Control属于PresentationFramework,其余的类属于PresentationCore。下面简单说明一下这些类,建议读者在了解类的同时,要注意它们之间的交互关系:System.Threading.DispatcherObjectWPF中有许多类继承自DispatcherObject,DispatcherObject提供了处理同步和并发的根本构造。WPF建立在dispatcher提供的消息系统之上。它的工作方式很像win32中的消息泵;事实上,WPF的dispatcher使用User32消息来实现线程间调用。System.Windows.DependencyObject构建WPF的一个主要思想是属性优先于方法和事件。属性是声名性的,并且能够更方便实现开发人员。WPF提供了丰富的属性系统,其核心是DependencyObject。它的根底是属性表达式。属性系统提供对属性的稀疏保存。System.Windows.Media.VisualVisual是一个抽象类,每个FrameworkElement对象都必须继承该类。该类的主要作用是为WPF提供呈现支持,主要包括输出显示,坐标转换,区域剪切等。以用户界面控件〔例如Button,TextBox〕为例,这些控件都继承Visual类,并使用该类定义的属性实现所呈现数据的持久化。System.Windows.UIElementUIElement是构建WPF元素和根本呈现特征的基类。该类继承自Visual类,其中定义很多与输入和焦点有关的特性,例如键盘事件,鼠标和笔输入。同时,该类还包括一些与WPF事件模型有关的API。System.Windows.FrameworkElementFrameworkElement类是连接Framework层次类与Core层次类的连接点。该类不仅继承了UIElement类,而且还添加了一些功能,例如,布局定义、逻辑树、对象生命周期事件、支持数据绑定和动态资源引用、支持样式和动画。System.Windows.Controls.ControlControl是创立自定义应用程序控件的基类。开发人员可通过重写Control类所提供的属性,方法,事件等,为自定义控件添加自定义逻辑。相信以上内容对于读者了解WPF类会有一定帮助,但是只了解这些是显然不够的。作为一名合格WPF开发人员,必须熟悉其他细小,更为常用的WPF类。3.开发工具由于WPF引入了很多新概念,新架构,因此要实现WPF应用程序的高效开发,必须使用专业的开发工具。这些工具主要分为两种:专业开发工具和专业设计工具。专业开发工具显而易见,创立WPF应用程序最为专业的工具是VisualStudio系列,这主要是指VisualStudio2005和VisualStudio2008。VisualStudio2008是2005的更新版,其直接支持WPF的开发,只需安装在操作系统中即可〔WindowsXP+SP2,2003和Vista〕。VisualStudio2005那么没有那么幸运。除安装根底的VisualStudio2005之外,开发人员必须安装三个软件包:.NETFramework3.0〔Vista内置该组件〕,WindowsSoftwareDevelopmentKit〔SDK〕和针对.NETFramework3.0开发的VisualStudio2005扩展插件〔包括VS2005Extensionsfor.NETFramework3.0〔Workflow〕和VS2005Extensionsfor.NETFramework3.0〔WCF&WPF〕〕。这些软件包都可在微软网站免费下载安装。专业设计工具上述VisualStudio工具更多的是帮助开发人员实现程序逻辑,而专业设计工具那么倾向于实现图形图像与WPF应用程序的整合。例如,MicrosoftExpressionDesign可创立和编辑2D图形〔基于位图或者矢量图〕,其结果能够导出为XAML代码,这对于WPF应用程序很有益处。又如MicrosoftExpressionBlend那么是一个全新的,全功能的专业设计工具,它可用于创造基于MicrosoftWindows平台的丰富、复杂的应用界面。使用ExpressionBlend可以提供更出色的应用软件,并提升客户的体验和满意度。除了以上两类工具之外,读者还可在互联网上找到一些免费工具,例如编写XAML语言的XamlPad,进行性能测试配置的WpfPerf等。这些工具由于缺乏很好的支持,可能会带来一些潜在的问题,因此不建议初学者使用。下面通过开发一个简单的WPF应用程序来说明以上所述的编程模式和根本方法。本例如将在屏幕上显示一个包括按钮的窗口,当用户单击按钮时会弹出一个显示提示信息的小窗口。本例如使用VisualStudio2008创立,开发步骤如下所示。〔1〕创立WPF应用程序工程。翻开VisualStudio2008,在“File”选单中选取“New”,接着单击子菜单项“Project...”。此时,将显示如图3所示的对话框。如图3所示,NewProject窗口主要包括三个局部:左边是工程类型,右边是工程模板,下部是设置。为创立WPF应用程序〔使用C#语言的情况〕,应在工程类型中选择“VisualC#”>“Windows”,然后在右边的模板中选择“WPFApplication”,最后在窗口下部设置工程参数。工程参数的设置包括Name,Location和SolutionName。此处将Name设置为HelloWpf。另外,开发人员应注意窗口右上方的下拉框,其用于设置WPF应用程序工程所支持的.NETFramework版本,例如.NETFramework2.0,3.0和3.5。由于这是一个WPF工程,因此可选择.NETFramework3.0或者3.5。在单击OK按钮之后,VisualStudio2006将创立WPF应用程序工程。所创立内容主要包括Windows1.xaml、Windows1.xaml.cs、App.xaml和App.xaml.cs〔还有一些工程资源文件,位于所设置的工程文件夹中〕。开发人员可在SoulutionExplorer窗口中看到这4个文件。其中Windows1.xaml和Windows1.xaml.cs分别用于实现窗口Windows1的用户界面和业务逻辑。App.xaml和App.xaml.cs分别用于实现整个应用程序的用户界面和业务逻辑。通常情况下,一个应用程序只能有一对App.xaml和App.xaml.cs,以及一个或者多个类似Windows1.xaml和Windows1.xaml.cs的窗口文件。〔2〕开发人员需要根据应用需求,实现用户界面。这涉及修改默认的Windows.xaml文件。在Design模式下,翻开Windows1.xaml。接着,在Toolbox窗口的Common分组中找到Button控件,并将其拖放至Windows1窗口中。此时,在该窗口中会显示一个按钮。接着,选中按钮控件,并通过Properties窗口修改属性。修改内容包括:〔1〕将Content属性〔用于设置按钮外表显示文本内容〕设置为“请单击按钮”;〔2〕将Name〔用于设置该控件的标识符〕设置为“btn1”在设计界面的同时,VisualStudio2008将自动为界面生成XAML代码。如下代码描述了图4所示窗口:<Window x:Class="HelloWpf.Window1"xmlns=xmlns:x="://schemas.microsoft/winfx/2006/xaml"Title="Window1"Height="300"Width="300"><Grid><ButtonMargin="101,114,102,125"Name="btn1">请单击按钮</Button></Grid></Window>以上代码虽然简单,但是涉及一些XAML的知识。有关XAML的内容将在随后的系列文章中介绍。此处,读者只需了解标记<Windows>表示呈现的窗口,标记<Button>表示窗口中的按钮即可。〔3〕实现业务逻辑,即单击按钮时,弹出一个提示信息窗口。首先,在<Button>标记代码中参加如下代码:Click="btn1_Click"该段代码表示为按钮单击事件添加一个事件处理程序,其名称为btn1_Click。然后,翻开Windows1.xaml.cs文件,并添加以下代码:privatevoidbtn1_Click(objectsender,RoutedEventArgse){MessageBox.Show("您成功创立了第一个WPF应用程序");}以上代码实现了当单击按钮时,应用程序将弹出一个消息窗口,其中显示一些提示信息。这个实现过程调用了MessageBox类的Show方法。〔4〕运行应用程序,查看结果。运行应用程序的方法很简单,只需使用组合键Ctrl+F5即可。如果应用程序代码存在错误,那么VisualStudio2008将利用ErrorList和Output窗口

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论