ImageVerifierCode 换一换
格式:DOCX , 页数:42 ,大小:386.25KB ,
资源ID:10439652      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10439652.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(WPF XAML 基础.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

WPF XAML 基础.docx

1、WPF XAML 基础#1. 什么是WPFWPF(Windows Presentation Foundation)是从.Net Framework从3.0开始加入的提供了全新的多媒体交互用户图形界面的类库,真正做了开发和设计分离的工作。WPF程序可以在桌面运行,也可以在WEB浏览器上运行(Silverlight).WPF使用3D矢量图形元素来进行图形渲染,独立于屏幕分辨率。使用DirectX硬件加速来渲染图形元素。带来了更绚丽的色彩和炫酷的效果。.Net 3.0后WPF逐步代替Windows Form成为了新一代的Windows客户端技术。 #2. 图形渲染级别(Rendering Tiers

2、)WPF应用程序会自动检查显卡运行能力并分配给一个渲染能力值。指示哪些功能可以通过图形层次完成。级别Tier 0 - 没有硬件加速,所有用软件绘制。级别Tier 1 - 一部分使用硬件加速,需要DirectX版本高于9.0. 硬件加速部分:径向渐变(Radial gradients), 3D亮点图形计算(3D lighting calculations), 文字渲染(Text rendering), 3D抗锯齿(3D anti-aliasing).级别Tier 2 - 大部分使用硬件加速。Directx版本高于9.0获得当前渲染级别方法: int renTier = (RenderCapabi

3、lity.Tier 16);MessageBox.Show(string.Format(Tier = 0, renTier);#3. 矢量图形,与分辨率无关在WPF中,图形渲染使用的是矢量,而不是位图。无论是默认控件还是自定义样式图像都是与分辨率无关。WPF代替了位图在屏幕上渲染图形每个像素的方法,矢量绘制了一些基础的单元:如形状,线,多边形等。因为WPF使用了矢量图形绘制,所以用户界面元素独立于实际设备的分辨率来渲染。WPF绘制的图像尺寸使用了与设备无关的单位,每一个单位是1/96英寸。这意味着用户界面的元素总是会呈现指定大小,不会被分辨率(DPI)影响。#4. WPF布局(Layout)W

4、PF使用了流式布局模型来进行定位元素,而不是使用精确的像素坐标来确定控件的位置。使用了描述性语言XAML来进行定位,类似HTML和CSS网页布局,极为简捷方便。流式布局模型可以使WPF布局可以进行动态调整以适合窗口,呈现流动状态。WPF界面的大小和分辨率并无关系。所有的WPF控件都是被承载在一个容器(Container)里,主流的容器有:Grid, DockPanel, StackPanel, WrapPanel.#5. 样式(Style)样式是类似CSS功能的一组可以重用的设置类似性质控件的属性值。你可以将之存储为资源(Resource), 然后应用在多个控件上。举个样例,你应用中所有的bu

5、tton都是一个风格,你需要先定义一个样式作为静态资源(StaticResource) 然后你就可以应用到你需要样式的button上: #6. 模板(Template)模板类似与样式(Style), 但实际并不相同。模板可以更换一个UI控件的外观,但不能改变其行为。一般Template都定义在Style之中。WPF每一个控件都有其默认的模板,你可以撰写一个模板来代替其默认模板来进行私人定制。通过改变模板的属性来改变其模板。下面是一个例子,我们创建了一个新的button,它具有了加厚的蓝色边框。 #7. 命令(Commands)WPF提供对命令(Commands)的支持,Command在WPF中

6、是事件的进化体。WPF可以将Command绑定到空间上,来减少重复的事件代码。多个控件可以使用同一个Command逻辑。Command可以使UI和逻辑分离,实现了UI操作,后台执行命令逻辑。WPF程序内置了很多命令,如Paste, Copy, Save等。下面代码展示了控件绑定命令的两种方式: /Create binding-which binds the command to your codeCommandBinding binding = newCommandBinding(ApplicationCommands.New);binding.Executed += newExecutedR

7、outedEventHandler(CommandNew_Executed);this.CommandBindings.Add(binding); #8. Xaml和Code BehindWPF应用是由前端代码Xaml(可扩展应用程序标记语言)和后台代码(托管代码)组成。标记性语言Xaml定义了UI的布局和外观,后台定义了行为和逻辑。WPF技术实现了UI和后台逻辑的分离。 Xaml是一个基于Xml的声明式标记语言编写的。Xaml中组织了所有的控件,以及他们的位置和父子关系。后端.cs托管代码描述了运行时UI的逻辑和行为。在编译阶段xaml和xaml.cs会编译为一个class, 所以xaml.

8、cs你可以看出是patical的。下面代码是一个Xaml布局的样例: 1 2 3 4 5 6 #9. 标记性语言的优势使用标记性语言Xaml和后台代码Xaml.cs模型开发比一切都定义在代码中有着很多的优势。使用Xaml的好处有:1. 可以在不影响控件行为的情况下更改用户界面的样式和用户体验。2. 设计人员可以和开发同时工作,一个负责Xaml做用户界面, 一个负责撰写后台逻辑。分工两不误。3. 微软提供了强大的设计工具Expression Design和Blend, 使用工具可以免写代码, 设计的界面可以直接导出成Xaml.4. Vs2013已经和Blend做了很好的集成,可以更高效率的做设计

9、和开发。#10. 基于Page的页面导航WPF应用程序可以用一些pages的集合以及其页面导航机制来进行构建。和WindowsForm的文档流式的模型不同,它拥有一个主窗体和一个可以弹出的提醒窗口。如果想要创建一个基于Page的WPF程序,你需要定义一个Page来代替传统的Window: 同时你需要指定app的starturi为该page此时你便拥有了一个基于Page导航的WPF应用程序。#11. WPF vs Silverlight vs ASP.NETWPF, Silverlight, ASP.NET是微软开发的三大平台。下面列出三种平台各自的特点WPF:1. 开发Windows应用程序2

10、. 以最丰富的用户控件和windows特定功能构建的客户端用户界面。3. 只能运行在Windows上4. 需要完整的.net framework支持。Silverlight:1. 开发运行在Web端2. 轻量客户端,丰富的UI控件,类似于WPF客户端呈现3. 需要安装Silverlight插件在浏览器上4. Silverlight的Moonlight版本可以在linux上运行5. 第一次加载时需要安装SL插件。ASP.NET:1. 开发Web应用程序2. 轻量客户端,有着通用的Web控制3. 可以在服务端运行,也可以运行在所有支持HTML的客户端,包括移动设备的浏览器4. 不需要在客户端安装插

11、件#12. 在3D硬件加速应用中使用Direct3D 虽然WPF提供3D绘制,但是3D应用中还是需要Direct3D来进行3D图形的绘制以呈现其最大性能。而且WPF 4.0是基于DirectX9.0, 所以并不支持Direct3D 10 和 Direct3D 11。 #13. WPF的版本记录 虽然下面列出WPF版本的历史记录和相对应的VS版本。由于WPF是.NET Framework框架一部分,所以版本号是跟着.NET Framework的。下面就是其记录: .NET Framework 3.0 Nov, 2006 1st release of WPF CLR version 2.0 Vis

12、ual Studio 2005 SP1 Incl w/Windows Vista .NET Framework 3.5 Nov, 2007 Various improvements to WPF CLR version 2.0 SP1 Visual Studio 2008 Incl w/Windows 7 .NET Framework 3.5 SP1 Aug, 2008 Performance improvements (et al) to WPF CLR version 2.0 SP2 Visual Studio 2008 SP1 .NET Framework 4.0 Apr, 2010 V

13、arious improvements to WPF CLR version 4.0 Visual Studio 2010 .NET Framework 4.5 Aug, 2012 Various improvements to WPF CLR version 4.5 Visual Studio 2012 Incl w/Windows 8#14. Silverlight and WPF 不同之处 Silverlight原名叫做WPF/E(WPF/Everywhere), 个人觉得原名很拽。通过名字就可以知道SL和WPF遵循相同的编程模型和大部分空间,可以理解为SL是WPF的一个浏览器特殊版本。

14、核心区别:1. WPF只运行在WIndows平台2. WPF需要.NET Framework3. SL是WPF控件的一个子集4. SL使用了.NET FRAMEWORK和CLR的子集WPF独有:1. 支持流文件 Flow document2. 支持动态资源 Dynamic resources3. Merged dictionaries(SL3已有)4. 重置样式到一个新的FrameworkElement5. Style继承(SL4已有)6. 隐式样式TargetType属性(SL5已有)7. Styles, ControlTemplates, DataTemplate的Triggers8. R

15、outed commands9. 自定义标记扩展(Custom markup extensions)(SL5已有)10. 运行时访问的可视化和逻辑树(Visual Tree 已有 SLSPY工具 也可以看到)11. 一些WPF独享的控件(AccessText, BulletChrome, ButtonChrome, ContextMenu, Decorator, DocumentPageView, DocumentViewer, GridViewColumnHeader, GridViewRowPresenter, GroupBox, GroupItem, InkCanvas, Menu, M

16、enuItem, PageContent, Ribbon, Separator, StatusBar, TickBar, ToolBar, Track, UniformGrid)SL独有:1. 深度缩放(Deep Zoom)2. 一些SL独享控件( AutoCompleteBox, DataPager, DescriptionViewer, HyperlinkButton, MultiScaleImage, NumericUpDown, ValidationSummary) 15 system.windows 命名空间 大多数wpf用户界面相关的类的命名空间都是system.windows或者

17、其子命名空间。 下面列出一些在system.window命名空间下的类:1 Application Encapsulated a WPF application 2 Clipboard Transfer data to/from clipboard 3 ContentElement Base class for contents elements, for flow-style presentation 4 DataObject Transfering data 5 DataTemplate Visual structure of a data object 6 DependencyObjec

18、t Object that participates in dependency property system 7 DependencyProperty Properties that support data binding, inheritance, etc. 8 EventManager Event-related utility methods 9 FrameworkElement Extends UIElement & provides support for logical tree, et al10 MessageBox - Displays a message box11 R

19、esourceDictionary Dictionary that contains WPF resources12 RoutedEvent Routed event13 Style Sharing of properties/resources between instances14 UIElement Base class for graphical elements15 UIElement3D Base class for 3D elements16 Window Window in user interface 16 独立和浏览器承载的应用程序wpf可以创建独立的windows应用程序

20、在windows环境下运行或者创建浏览器承载的应用程序,在浏览器中运行。浏览器承载的应用程序也被称之为xbaps(xaml浏览器应用程序)。发布的XBAP托管在一个web的服务器上,访问者机器首先下载和安装应用程序所需要的silverlight插件,当用户第一次浏览xbap页面时,用户界面会显示在浏览器的窗口中。XBAPS可以在ie和firefox中完美运行。17 WPF单位 在windows forms开发中,控件的大小是根据 像素生成的。而在wpf中使用的是wpf单位。1 wpf unit 1/96 inch。 这个说明了在96dpi下,一个wpf单位为一个像素(pixel)。这就意味着在

21、120dpi下,一个wpf单位是1.25pixel。由于WPF所有的元素都是使用wpf单位来进行大小绘制的,所有的控件都是会基于设备系统的DPI。这样就可以保证在不同的设备上有着相同的物理尺寸。换句话说就是一个96WPF单位的元素无论是在96dpi下还是120dpi下都是1英寸大小(96pixel=1英寸)。在Windows Form下如果想做到设备无关性,需要设置AutoScaleMode,但在WPF中是自动的。计算公式:# pixels = (# WPF Units) * (DPI / 96)18 WPF结构 下面结构图展示了WPF主要的一些dll之间的依赖关系:下面列出在上图中的dll:

22、 System.Windows.Presentation.dll Contains some types related to add-insPresentationFramework.Aero.dll Implements Aero theme for WPF controls PresentationFramework.Classic.dll Implements Classic theme for WPF controls PresentationFramework.dll Contains most of the main WPF controls, as well as suppor

23、t for data binding PresentationUI.dll Contains some resources related to themes & some support classes for System.Windows.Documents ReachFramework.dll Contains types related to printing and XPS documents System.Printing.dll Contains main types related to printing PresentationCore.dll - Lower level t

24、ypes for visual rendering like UIElement. Also DragDrop support. System.Windows.Input.Manipulations.dll - Implementation of input manipulators UIAutomationProvider.dll - Support for UI Automation (for accessibility) WindowsBase.dll - Lower-level types like DependencyObject and DependencyProperty UIAutomationTypes.dll Basic types

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1