1。为什么要学习wpf:
sliverlight是wpf的一个子集,可支持跨域浏览器。现在sliverlight有一定应用了。所以学习了wpf再看silverlight就简单多了。还有wpf可以用用在桌面上开发,虽然不多,相信以后会有的。
2。wpf的优点
wpf主要是用来开发界面的,但界面漂亮。
因为它利用到了微软的directx技术,以前的basic,delphi,c++都是利用windows的user32,gdi来开发的。
他具有几项功能优点:
1)基于矢量绘图技术,可以将图形任意无限放大缩小。
2)显示图像与设备单位无关:就是在不同的分辨率下,显示同样的图像。
3)显示界面适应不同的显示设备。
4)支持多媒体,动画
5)有样式,模板特性(这不算什么优点,其他界面也有)
3。wpf架构(三层)
第一层 托管代码wpf api :presentationFramework.dll prsesentationCore.dll,windowsBase.dll
第二层是 milcore.dll,windowsCodes.dll 多媒体整合
第三层:direct3d,user32(操作系统底层的东西)
4。wpf类层次结构
System。Threading。DispacherObject 这个对象主要是用来整理消息:将键盘输入,鼠标移动等框架处理整理到用户界面线程。用户界面线程是一个单一的线程。
System。windows。DependencyObject 继承DispacherObject 。通过属性来与界面元素交互,相当我们在后台写属性后前台的界面就会发生一定变化。
System。Windows.Media.Visual 继承DependencyObject 可视化对象 继承visual的对象都有能力呈现在窗口上
System。Windows。UIElement继承Visual ,wpf的核心子系统。包括布局,输入,事件,焦点。
System。windows。FrameworkElement实现了很多UIElement仅定义的成员。如设置些属性HorizontalAlignment和Margin。同时还支持两个关键:数据绑定和样式
System.Windows.Shapes.Shape 继承FrameworkElement:如Rectangle,polygon,Ellipse,Line,Path
System。Windows.Controls.Control 继承FrameworkElement :如textbox,Button,ListBox,等。
system.WINDOWS.Controls.ContentControl继承Control :是其他控件继承他,用来呈现单块内容。
System.windows.Controls.ItemControl继承Control:是集合项控件的基类。
System。windows。Controls。panel 继承Control:布局容器面板的基类