初学WPF&Silverlight

初学WPF,Silverlight,有一些基本了解

WPF Silverlight都是新一代的界面呈现技术,他们都统一地使用XAML语言来描述界面 在XAML语言中描述UI元素

比如根元素Window, Page 以及其中的各种控件 Button Grid Pannel等

XAML文件描述了一个应用程序的UI元素,之前的WinForm的界面实际上都是由代码来构建

例如先实例化一个Form 在构造函数中添加使用Form.Control.Add()方法将控件添加进去

 

 1 <Window x:Class="WPFDemo.MainWindow"
 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界面,也容易创建动画效果。最终用户界面将得到很大的改善甚至是变革,以下是一张效果图:

posted on 2011-04-06 22:33  狐狸狡猾不  阅读(663)  评论(0编辑  收藏  举报

导航



Powered by: 博客园 copyright © 2009-2012 狐狸狡猾不