初学WPF&Silverlight
初学WPF,Silverlight,有一些基本了解
WPF Silverlight都是新一代的界面呈现技术,他们都统一地使用XAML语言来描述界面 在XAML语言中描述UI元素
比如根元素Window, Page 以及其中的各种控件 Button Grid Pannel等
XAML文件描述了一个应用程序的UI元素,之前的WinForm的界面实际上都是由代码来构建
例如先实例化一个Form 在构造函数中添加使用Form.Control.Add()方法将控件添加进去
2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4 xmlns:my="clr-namespace:WPFDemo"
5 Title="MainWindow"
6 SizeToContent="WidthAndHeight"
7 ResizeMode="CanResize"
8 BorderThickness="7"
9 AllowsTransparency="True"
10 WindowStyle="None"
11 Background="Transparent"
12 WindowStartupLocation="CenterScreen">
13 <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Name="grid1">
14 <my:Rotate3DContainer HorizontalAlignment="Stretch" VerticalAlignment="Stretch" x:Name="rotate3DContainer1">
15 <my:Pannel1 Width="580" Height="350" MouseMove="Pannel1_MouseMove" />
16 <my:Pannel2 Width="580" Height="350" MouseMove="Pannel2_MouseMove" />
17 </my:Rotate3DContainer>
18 </Grid>
19 </Window>
以上是一个XAML文件的内容,
使用XAML可以将这些UI元素都分离出来,用一个XAML文件来进行描述,在程序运行的时候 XAML文件中描述的各种对象都将映射到CLR类库中,由系统对这些对象进行构造,XAML关联着一个.cs文件 也就是后台逻辑代码。
WPF和Silverlight都是如此 不同的是,WPF主要运用在桌面应用程序中,由.NET Framework提供运行时支持,拥有了最强大的功能,而Silverlight则主要应用于浏览器中,由Silverlight浏览器插件提供运行时支持,显然Silverlight浏览器插件与.NET Framework相比要小得多,自然支持的类要少些,功能要弱些。Silverlight是WPF的一个子集,可以看做是基于浏览器的微型WPF,可以得出结论 Silverlight能实现的WPF都能实现,WPF能实现的Silverlight不一定能实现。
上面这个文件的xmlns="http:\\......."是映射了一组CLR名字空间,在XAML文件中必须要描述这个文件所映射的CLR名字空间,这样在XAML中描述的元素才能准确地映射到类库中具体的类上面。
虽然XAML可以描述界面元素,但是WPF和Silverlight中的所有元素也不一定都要写在XAML文件中 也可以由后台代码自动创建。也可以完全手动地在后台编写代码实例化各个元素,不过这样做只是体现不出WPF&Silverlight界面和逻辑分离的特性。
WPF与上一代的WinForm相比 其优势在于更加容易地创建漂亮的应用程序界面,其它方面倒没多少变化。WinForm是基于GDI+的界面技术,UI最终都是调用GDI+函数绘制而成的,无论是窗体 自定义控件都使用GDI+。而WPF则不再依赖于GDI+,它从GDI+脱离出来,UI的呈现都基于Direct3D,界面的绘制工作都是由D3D完成的。因此,在WPF的类库中,封装了很多Direct3D的操作,通过使用这些类 不仅可以方便的绘制平面图形,也能很方便地绘制3D界面,也容易创建动画效果。最终用户界面将得到很大的改善甚至是变革,以下是一张效果图: