WPF 札记-概述

最近想看看WPF,上MSDN看了看,觉得讲的不够的彻底,许多概念在MSDN上讲的都是那么的晦涩,有的时候看了半天也没有搞懂里面到底说的个什么意思,上网找关于WPF的书,最终决定 买了一本《WPF编程宝典-C# 2010版》,看了几章觉得里面讲的还是很不错的,特别适合有一定.Net 基础的学习WPF,里面讲的很基础,很适合入门WPF。我的观点一向是把基础打牢靠,比看许多高级应用事例要好的多,我决定将研读笔记记录下来,希望能够对想学WPF的入门者有帮助。

几个概念介绍一下:

XAML:全称“可扩展的应用程序标记语言”,发音“zammel”(对于这些英文缩写的发音很重要,能让你在技术沟通上保证无障碍),它是独立于WPF的一个模块。它的作用是讲.net中所有定义的类对象映射到XML上,在XML上按照一定的语法写一些XML,那么在编译的时候将会转化成可调用的对象去执行。WPF中所有的大部分的控件是再System.Windows.Controls命名空间下面,而XAML将这个命名空间下面的所有类做了映射,所有能够像写HTML一样去布局界面。在XAML这样的基础之上,WF(workFlow工作流)也再再此基础之上建立的。XMAL自己实现扩展也很方便,甚至可以用XAML去坐出Winform界面出来。

SilverLight:中文名“银光”,是WPF的一个子集,主要用于WEB方面,至于的应用情况我也不是太清楚,与WPF功能上是有一定差别的。

WPF:这个是什么我就不说了。想学习的人都应该有所了解吧!

WPF界面与传统应用程序:

1.传统winfrom用得是user32提供一些基本元素组成的,一些图形是通过GDI/GDI+做得。WPF完全采用的DirectX图形引擎渲染的,性能再一定程度上取决于机器的显卡。有些人说WPF程序很慢,那可能有两个原因:一个是用户的显卡估计真得是很烂,另外一个可能开发者过度的追求一些效果了。

2.WPF单位尺寸与分辨率无关性,这个可能会导致一些字体和图形的模糊,在WPF4中有方式可以解决这个问题,但是也会带来另外的一些问题,具体的在以后的笔记中我会做一些说明。但是并不是这样设计不好,它有很多的好处,比如说计算缩放,布局,屏幕分辨率的变化对应用程序界面布局的影响,总得来说还是利大于弊的。我之前再坐winfrom的时候,总是会因为不同机器分辨率的问题去调整界面的布局,很是烦啊!

3.WPF上动画虽然比不上flash,但是已经很不错了,比起在winfrom中用一个timer来控制一个动画效果要好的很多啊!

4.布局:不得不佩服,WPF的布局正的很强大,并不是Winfrom上几个框框分一下就了事的!

5.WPF控件的一个重要概念是控件无样式,所有的样式和显示模板都专门的文件来定义(使得整个应用程序有着统一的外观),这样外观完全可以交给设计人员去坐,winfrom中外观相关的一些东西都要程序来控制,无疑增加代码的复杂度,使程序变的难以维护,而且让一个敲代码的去设计界面可想而知有多么的不协调。

6.绑定:WPF中绑定机制可以做到一些winfrom中无法做到的事情,比如两个控件之间属性的绑定,在winfrom必须借助数据来才能做到,再WPF中可以直接绑定。WInform中的数据绑定老是出项一些莫名奇妙的问题,这也是我之前坐winform程序时比较头疼的问。WPF中绑定的一些机制分得很清楚,莫名奇妙的错误基本上不会出现。

 

关于WPF前景(个人观点):

前几天有公司同事看见我再看WPF,就说WPF是一个快死的技术了你还看。我辩驳一番,我并不是辩驳说WPF不会死掉,而是说每一个技术都它的生命周期的,在这个生命周期之内,它都是有价值的,这个生命周期是由它的替代技术决定的。无可厚非HTML5将会最终界面霸主(据说win8系统中会采用HTML5来做应用程序界面,flash现在停止一些开发了),但是目前看来HTML5标准和应用还没有完全的流行起来,各个浏览器支持程度也各有不同。所以至HTML5这个替代技术完全发展之前,WPF还有需要的,毕竟Winform再许多地方不能满足需求,有XAML这样一个东西将来HTML5发展起来了,你的应用程序转成HTML5的也许并不是什么难事。

WPF 01-BootstrapperShell是一种用于启动和初始化WPF应用程序的框架。它是指示WPF应用程序在启动时应执行的代码的入口点。通常情况下,我们可以在App.xaml.cs文件中找到它。 BootstrapperShell提供了一种将应用程序的各个部分组织在一起的方式,以便在启动时执行特定的操作。这些操作可以包括设置应用程序的默认样式、添加全局资源、注册服务和创建主窗口等。通过将所有这些相关的代码集中到一个地方,我们可以更好地管控应用程序的启动过程。 通常情况下,BootstrapperShell会执行以下几个步骤: 1. 创建应用程序的主窗口:这个步骤通常在App.xaml.cs文件的OnStartup方法中完成。我们可以在这里创建一个MainWindow实例,并将其设置为应用程序的主窗口。 2. 设置应用程序的默认样式:WPF应用程序通常使用样式来定义应用程序中各个控件的外观和行为。在BootstrapperShell中,我们可以通过添加资源字典来设置应用程序的默认样式。 3. 注册服务和初始化其他组件:在应用程序启动时,我们可能需要注册一些服务或初始化其他组件,以便在应用程序中的其他地方使用。在BootstrapperShell中,我们可以执行这些操作。 4. 处理未捕获的异常:在应用程序中可能会发生未捕获的异常,我们可以通过在BootstrapperShell中实现Application.DispatcherUnhandledException事件处理程序来捕获和处理这些异常。 总而言之,WPF 01-BootstrapperShell是一种用于组织和管理WPF应用程序启动过程的框架。它提供了一个入口点来集中所有与应用程序启动相关的代码和操作,从而更好地控制应用程序的行为和外观。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值