永发信息网

winform siverlight WPF 三者间的区别

答案:4  悬赏:60  手机版
解决时间 2021-03-08 06:03
  • 提问者网友:末路
  • 2021-03-07 15:04
winform siverlight WPF 三者间的区别
最佳答案
  • 五星知识达人网友:怙棘
  • 2021-03-07 15:40
Winform
在Windows中,诸如窗体绘制等功能由GDI实现,放在操作系统内核中。Windows Forms在底层使用的是GDI+。GDI+是GDI的“面向对象包装”,使用C++实现。.NET Windows Forms应用程序中使用的GDI+其实是在C++实现的非托管代码之上又包了一层,从而让我们能使用C#这样的托管编程语言调用GDI+功能绘图。

WPF
底层使用的是DirectX,就是通常用来开发游戏的那个DirectX。WPF与Windows Forms这两者并没有什么关系。按照微软的意图,WPF是用来取代Windows Form的,所以最新的Visual Studio就使用了WPF开发界面,这是一个很明确的信号。
当然,出于兼容目的,Windows Forms与WPF将长期并存,可以把它们看成是两套独立的界面技术。

Silverlight
在API层可以看成是WPF的子集,但事实上除了这点之外,Silverlight与WPF并没有任何联系。因为Silverlight应用程序不依赖于.NET Framework,只要用户计算机(或手机)安装有Silverlight运行环境(比如用户通过互联网给浏览器添加了Silverlight插件),就可以跑Silverlight应用程序,并不要求用户安装庞大的.NET Framework。Silverlight运行时环境在API层面也可以看成是标准.NET Framework的功能子集,但它完全是重新写过的,独立于标准的.NET Framework,虽然为了方便应用程序开发,微软努力保持两者在API层面的一致性,但并不排除Silverlight运行时环境日后会拥有全新的为.NET标准环境所不具备的功能。

Windows Forms\WPF\Silverlight这三者其实是独立发展的三个技术领域,只不过微软出于方便开发的目的,有意让Silverlight与WPF在应用层面开发体验(甚至包括大部分应用层代码)高度一致罢了。

从开发角度来看,Windows Forms已有多年的历史,高度成熟,拥有大量的第三方控件等各种资源,如果开发“标准”与“通用”界面类型的Windows应用程序,使用它可以获得较高的开发效率和不错的运行性能。

WPF的长处在于它可以开发非常“个性化”的Windows应用程序,你可以不受任何限制地实现你所能“梦想”到的各种用户界面,而且在动画等 多媒体方面,WPF优于Windows Forms,另外,WPF的数据绑定机制也比Windows Forms要强大和灵活。WPF的短处在于它对计算机硬件的要求较高,对于硬件配置较低的计算机,其运行性能不如Windows Forms版本。就目前来看,WPF的最佳平台是Windows 7。

Windows Forms和WPF主要用于开发桌面应用程序,Silverlight主要战场是互联网,通常用它来开发RIA的互联网应用程序,或者是跑在手机等智能移 动设备上的应用程序。可以这样说,会WPF,不费太多力气,就可以转去开发Silverlight应用程序,两者实在是太相似了,特别是界面层代码,由于 都使用XAML,这使我们可以比较容易地为某一应用程序同时开发“桌面版”、“手机版”和“浏览器版”三种版本,而这三种版本其用户界面都可以拥有一致的 外观和用户使用体验。
全部回答
  • 1楼网友:春色三分
  • 2021-03-07 17:33
winform:传统界面,简单的拖拽就可完成
silverlight:用来做网页的界面
WPF:可以做出像win7这样的炫丽界面,可以考虑用express bless工具。
  • 2楼网友:神鬼未生
  • 2021-03-07 16:51
ilverlight与Wpf 的显示层都以XAML为基础,后台都以C#为核心
  • 3楼网友:轮獄道
  • 2021-03-07 15:52
呃...
楼上那个是ExpressionBlend... 我来解释一下。。
Winform是传统Windows应用,其UI的核心还是GDI+的重绘渲染,如果用自定义的UI的话,就要重写重绘逻辑,类似游戏的“帧刷新”感觉,适合对位图+GDI熟悉的开发者使用——不是设计师使用的。
Silverlight和WPF,先说WPF。
WPF=Windows Presentation Foundation,是.net framework 3以上提供的一套应用框架,它引入了描述型语言XAML(类似HTML的概念),把界面和后台代码分开了。而且其核心也是矢量绘图,所以可以被无限放大无损耗。
使用WPF做UI的话非常简单,而且自定义性非常高。可以完全把XAML交给设计师,使用ExpressionBlend制作UI (WPF的设计框架里对模板,属性,etc有很详尽的定义),甚至可以设计动画(Storyboard)和通过很简单的方法给系统控件制作皮肤(ControlTemplate)
但是WPF所存在的.NET 3以上包裹都很大,而且对系统要求也比较高。
应对这个问题出现了Silverlight,
Silverlight安装包只有几mb,其竞争对手是Flash,Silverlight又叫 WPF/E(WPF / Everywhere),是WPF开发模式的精简版,对于UI制作而言没有任何精简。。矢量绘图,动画,模板,etc,全部可以使用。后台则是采用CoreCLR(精简的.net核心)驱动所以开发语言还是C#,VB.NET 没有变化,更关键的是其可以在Windows/Linux/Mac上运行同样的代码,节省了时间(新增支持WindowsPhone7)。如果不是项目必须要使用到WPF对3D模型的相关支持,或对本地文件系统的过度要求的话,完全可以用Silverlight开发应用。轻便小巧。
你可能会问。。Silverlight和Flash类似那应用做出来还是exe么?不是了,是XAP。
实际上和SWF工作方式类似,嵌入到一个HTML页面里就能用了。。
Silverlight应对这个问题提供了OOB模式,可以将XAP安装到本地,对用户而言看起来和可执行文件一样,出现在开始菜单,而你也掌握了更高的权限,可以访问文件系统。你的SL程序也跑在窗口里。
SL5快要发布了,新功能很多,其中就有增强OOB模式下SL程序的能力比如多窗口etc..
个人很推荐用SL尝试实现UI,矢量,高效,轻便
设计工具
ExpressionBlend 4 + (或在Adobe Illustrator 设计好的设计图直接导入)
开发工具
Visual Studio 2010 + Silverlight Toolchain
工具获得:
http://silverlight.net
个人见解如果说的不对不好意思追问我欲用WPF做一个扑克牌游戏就是Windows自带的Solitaire游戏的UI界面,需要用到所有扑克牌的图片,Windows库里有一张集所有扑克在一起的一张图片,怎么实现显示上面特定的图片片段显示在特定的地点?追答...这用什么平台都一样吧
GDI+ 的话你可以在DrawImage的时候选择源图片中的一定范围进行绘制
WPF的话你可以用WriteableBitmap来裁切位图
裁切后的东西是WPF可以使用的Image对象,
或者你可以用PS切好然后用WPF访问
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯