`
jiasongmao
  • 浏览: 670138 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

WPF何以令人佩服

    博客分类:
  • WPF
阅读更多
一直以来,完美的用户体验是桌面应用程序和Web应用程序中的一大障碍。许多开发人员绞尽脑汁将界面设计得美观炫丽些、互动感强些,但费了九牛二虎之力, 还是差强人意。由于技术上的限制,Web 应用程序无法提供与桌面应用程序同样丰富的用户体验。而随着电脑与每个人的生活、工作变得密不可分,人们对桌面应用程序的要求也不断提高。永不满足的人们 要求桌面应用程序能够播放视频、运行动画、采用二维或三维图形,以及调用不同的文档。
想实现这些吗?那就用WPF!来句流行的广告词:用了都说好!
使用 WPF,你可以创建丰富、美妙的连接应用程序,以充分利用 Windows 平台,其中包括 UI、媒体、脱机通信和文档支持。

   先来说说WPF程序的设计制作过程。

    一般地,大多数WPF程序都将同时包含XAML代码和程序代码。我们首先使用XAML定义程序界面(如前所述,可以手工编写,也可以采用 Experssion Blend等可视化工具编写),然后再用.NET语言(C#, VB.Net等)编写相应的逻辑代码。和ASP.NET类似,逻辑代码既可以直接嵌入XAML文件中,也可保存为独立的代码文件。
   尽管XAML并非设计WPF程序所必须,我们依然可以按照传统方式使用程序代码来实现界面设计制作。但是,如果使用XAML,界面设计和逻辑设计就可以完 全分离。这样,不但使程序的开发和维护更加方便,而且当进行团队开发时,可真正实现“专业的人做专业的事”,把界面设计交给专业的美术设计师们去完成,而 让我们精力和时间都宝贵的程序员们专心致志于业务逻辑的实现。真正做到“各尽其能,各施其职”,最终得到一个功能强大、界面一流的WPF程序。这时,就只 等用户“满意一笑,开心买单”了。

    听说现在的人都讲求实在,讲求效益。那么,WPF给我们的桌面应用程序和Web应用程序带来了哪些实实在在好处呢?

    首先,一套编码,桌面应用程序与Web应用程序均可运用,这当然就节省成本啦。当然,某些时间,改改适当代码是必需的。但改动量如此之小,让你很惊异伟大的Microsoft,让你不得不服(WPF的“我佩服”传说就此而来?)。

    其次,WPF不仅使美化、多样化了桌面应用程序,也是使Web变得异彩纷呈。WPF 使得3D进入Web成为可能。比如,你可以使用矢量图形设计软件(Illustrator, CorelDraw等, 微软也有了!叫“Expression Designer”)设计好图片,然后将图形输出或导出成为XAML格式。然后,你可以在Blend中打开XAML文件,制作成动画,最后生成的也是 XAML。通过.Net语言(如C#)进行编程,还可以控制这些XAML。加上有VS2005/2008优秀的开发环境,可谓之“牛B无敌”。 XAML+C#是大趋势,必将吸引大批追捧者(从微软.Net的成功,已从一个侧面印证了这一点)。

    更多的技术细节。
    实际上,WPF 的支持范围远不止基本用户界面应用那么简单,还包括:
(1) 文档的变革。之所以称其为“变革”,是因为它不仅可以使用传统的屏幕显示/打印文档(XPS),而且还可以使用 FlowDocument 标记来显示流文档。文档中不仅可以有文字、图片、链接,还可以有三维动画、视频等。试想一下,在某个重要的日子,当你将所有与他/她在一起时浪漫的照片、 温馨的视频、甜蜜的话语,加上潇洒的签名,发挥你丰富的想象力,做成一个动感十足的动画,或是丰富趣味的互动游戏,将之保存为一份多媒体文档,在恰当的时 间,利用恰当的机会,把它送给他/她的时候,他/她看到之后又是怎样一种感觉呢?在恰当的时间、恰当的地点,由恰当的人,做出恰当的事,这就是最“恰当不 过”的了!
(2)图形:WPF 支持创建二维和三维矢量图形。对于二维图形,WPF 提供标准抽象,例如,形状、画笔和绘图笔,同时还允许三维图形定义模型,以用于指定光线和摄像机位置信息。与早期技术(GDI, GDI+)不同的是,WPF 图形并不是使用开发人员所必须了解的单独一组概念进行图形图像绘制,用于图形描述的XAML元素能够与那些用户界面其他元素自然组合。比如按钮,可以是文 字,也可是带图形和文字的组合,还可以有更多功能。
(3)图像:WPF使用 XAML 的图像标记,可在应用程序中显示不同格式的图形,包括 JPEG,GIF,PNG及其他格式。WPF依靠WIC(Windows Imaging Component) 为编解码器,以及显示和存储图像的软件提供标准框架。在 WPF 中,通常图像元素可以与其他元素组合,比如按钮,可以显示为图像按钮而不是简单的文本标签。
(4)多媒体视频及音频:WPF可使用 MediaElement 标记来显示不同格式的视频和音频,包括 WMV、AVI 和 MPEG等。同样,此元素也可与其他 XAML 元素相组合,更让人称奇的是,你甚至可以使三维立方体的所有侧面上都显示视频。继续发挥你的想像力,你可以让它们动起来,比如3D旋转,拖动或缩放某一侧 面,或是做出你要的效果。在这个世界里,你可以真正做到“人有多大胆,地有多大产”。
(5)动画:WPF 提供动态显示绝大部分用户界面的内置支持。例如,放大和缩小矩形、更改按钮大小。与Adobe Flash中时间线类似,你还可以定义包含时间线的情节提要,也可以调整动画的发生顺序。
(6)数据绑定:基于多数程序都需要显示数据,因此,WPF提供将数据映射到用户界面元素的自动支持功能。类似asp.net的方式, WPF 可为包含在对象和其他源中的信息提供数据绑定,而且还允许在显示数据前对其进行排序和筛选。

   最后,可让原有图形图像的重复利用,使你原有的投资发挥最大的效益。
   由于XAML基于XML,它的格式是开放的。因此市面上出现了大量有用的转换工具,利用这些工具,可以将你原来在其他设计软件(如Photoshop、 Illustrator、AffectEffects,其他三维设计软件等)制作出来的图形图像、3D动画等导出为XAML。
分享到:
评论

相关推荐

    wpf解密。令人痴迷的探索WPF 之旅

    本书针对的软件有WPF 3.0 最终版、相应的Windows SDK 和2006 年10 月发布的Visual Studio 2005 .NET Framework 3.0 扩展组件。

    一个Wpf例子,热爱我佩服的下来看看

    这个标题“一个Wpf例子,热爱我佩服的下来看看”暗示我们将探讨一个令人印象深刻的WPF应用实例,它可能展示了WPF的强大功能和设计灵活性。 在WPF中,开发者可以利用丰富的图形系统、2D/3D渲染能力、数据绑定机制、...

    WPF源码WPF 源码WPF 源码WPF 源码WPF 源码WPF 源码

    4. **控件模板和样式**:WPF的控件可以通过模板进行自定义,以实现独特的外观和行为。源码中会包含各种控件模板的实现,如`ControlTemplate`和`DataTemplate`。 5. **布局系统**:WPF的布局系统能自动调整元素的...

    通用WPF主题控件包rubyer-wpf-master

    WPF提供了一个全面的、以XAML为基础的界面设计工具,支持丰富的图形渲染、数据绑定、事件处理等功能。然而,创建出吸引人的视觉外观往往需要大量的工作,这就是rubyer-wpf-master控件包的价值所在。 在这个2.0.0...

    WPF编程基础WPF基础

    5. **布局系统**:WPF的布局系统允许控件自动调整大小和位置,以适应容器的变化。主要的布局容器有Grid、StackPanel、DockPanel和Canvas等。 6. **多媒体集成**:WPF内置对图像、音频和视频的支持,使得开发者可以...

    wpf动画集锦 wpf特效集锦 wpf炫酷动画集锦 wpf炫酷特效集锦

    在本文中,我们将深入探讨WPF(Windows Presentation Foundation)中的动画和特效,这些效果在标题和描述中有所提及。WPF是.NET Framework的一部分,它提供了一个丰富的用户界面平台,允许开发者创建具有高度交互性...

    WPF开发教程 ----WPF C# 编程 界面开发(很不错)

    WPF开发教程.rar 目录 WPF基础入门 3 1. WPF基础之体系结构 3 2. WPF基础之XAML 9 3. WPF基础之基元素 23 4. WPF基础之属性系统 26 5. WPF基础之路由事件 33 6. WPF基础之布局系统 46 7. WPF基础之样式设置和模板化...

    WPF优秀项目及源码 wosk-94877

    WPF优秀项目及源码 wosk-94877WPF优秀项目及源码 wosk-94877WPF优秀项目及源码 wosk-94877WPF优秀项目及源码 wosk-94877WPF优秀项目及源码 wosk-94877WPF优秀项目及源码 wosk-94877WPF优秀项目及源码 wosk-94877WPF...

    wpf进度条,wpf等待条,wpf loading

    "wpf等待条" 或 "wpf loading" 指示器通常是动画化的,它们以旋转、填充或其他动态方式呈现,以吸引用户的注意力并告知他们程序正在进行后台处理。这些等待条可以是简单的图形,如转动的圆圈或者复杂的动效图案。...

    WPF自学手册 与 WPF高级编程

    **WPF(Windows Presentation Foundation)**是微软.NET Framework框架下的一个关键组件,它为开发者提供了构建桌面应用程序的强大工具。WPF的设计目标是统一图形、媒体和文本处理,从而实现更丰富的用户界面。在这...

    WPF.DazzleUI.rar_360ui页面wpf_WPF_WPF.DazzleUI2_WPF实现的360界面_wpf界面

    3. **样式和模板**:WPF允许开发者定义控件的样式和模板,以实现统一的界面风格和定制化的控件外观。这对于创建如360UI这样的品牌化界面尤为重要。 4. **控件库**:WPF内建了一套丰富的控件集合,包括按钮、文本框...

    WPF优秀项目及源码 wpfinspector-19717

    WPF优秀项目及源码 wpfinspector-19717WPF优秀项目及源码 wpfinspector-19717WPF优秀项目及源码 wpfinspector-19717WPF优秀项目及源码 wpfinspector-19717WPF优秀项目及源码 wpfinspector-19717WPF优秀项目及源码 ...

    WPFUI.rar_WPF_WPF 单选题_wpf主界面_wpf炫丽ui_wpf界面

    在本主题中,我们将深入探讨一个基于WPF的UI设计实例——"WPFUI.rar",这个压缩包包含了一个具有横向裂开效果的简单UI界面,特别适用于实现wpf单选题、wpf主界面、wpf炫丽ui以及wpf界面的设计。 **1. WPF基础** WPF...

    wpf照片墙(带有3d效果).zip_WPF_badai1_wpf 照片_wpf 照片墙_照片墙

    3. **数据绑定**:使用MVVM(Model-View-ViewModel)模式,将照片数据绑定到UI元素,以便于管理和更新。 4. **布局管理**:可能采用了Grid、StackPanel或其他自定义布局控件,来安排照片的显示位置。 5. **用户...

    WPF Extended.Wpf.Toolkit 加载界面 Demo

    WPF Extended.Wpf.Toolkit库提供了许多额外的控件,如:数字输入框、日历控件、颜色选择器、进度条等,但最引人注意的是它的加载指示器组件。这个库可以通过NuGet包管理器轻松添加到项目中,为开发者提供了更多的...

    Wpf框架模块.rar_WPF 界面框架_wpf 界面_wpf 软件框架_wpf样式_工业

    **WPF框架模块详解** WPF(Windows Presentation Foundation)是微软.NET Framework的一部分,它提供了一个强大的图形系统和用户界面框架,用于构建Windows桌面应用程序。在本压缩包中,"Wpf框架模块.rar"包含了...

    wpf翻书效果

    通过掌握以上知识点,并结合实际项目需求进行调整和优化,可以在WPF中成功实现令人印象深刻的“翻书效果”。同时,不断学习和探索WPF的高级特性,如材料(Material)、光照(Lighting)等,将使你的应用更具吸引力和...

    WPF优秀项目及源码 wpfrealtime-16372

    WPF优秀项目及源码 wpfrealtime-16372WPF优秀项目及源码 wpfrealtime-16372WPF优秀项目及源码 wpfrealtime-16372WPF优秀项目及源码 wpfrealtime-16372WPF优秀项目及源码 wpfrealtime-16372WPF优秀项目及源码 ...

Global site tag (gtag.js) - Google Analytics