您的位置:软件 > 开发者网络 > 技术跟踪 > Windows编程 > 正文
Longhorn应用开发部署初探
[文章信息]
作者:winsome zhong编译
时间:2003-11-25
出处:MSDN
责任编辑:方舟
[文章导读]
本文将带领大家体验最新的Longhorn应用模型,并演示一些基本的例子
advertisement
热点推荐
· 天极网软件频道改版调查
· 10.28软件精选 找乐还是赌钱
· 中国游戏业——被人们忽视的黑暗
· Windows 2000密码破解不完全指南
· 解决XP SP2带来的网络故障(上)
[正文]

上一页  1 2 3 4  下一页

  三、XAML语言

  XAML由四大类元素组成----面板(panels)、交互式控件(interactive controls)、文档对象(documents)和图形(graphic shapes)。另外边框(Border)元素也很重要,虽然它不属于四大类元素。在XAML中,Panel负责管理页面布局,并且是其他元素的容器,控制它们的大小、位置及内容的绘制方式等。Longhorn内建了6个Panel类--Canvas, DockPanel, FlowPanel, GridPanel, Table和TextPanel。但是开发人员可以创建自己的Panel,定制其绘制行为。

  Canvas是面板中唯一支持坐标的,它上面的控件元素从一个固定的位置开始绘制,具有特定的尺寸。如果两个控件元素重叠,后绘制的那个将覆盖掉前一个。注意坐标是相对于Canvas的,(0,0)代表Canvas的左上角。下面是一个Canvas对象的例子:

<Canvas xmlns="http://schemas.microsoft.com/2003/xaml"
Height="600" Width="800">
<Border Background="red"
Canvas.Top="0px" Canvas.Left="0px"
Height="100px" Width="100px" />
<Border Background="green "
Canvas.Top="100px" Canvas.Left="100px"
Height="100px" Width="100px" />
<Border Background="blue"
Canvas.Top="50px" Canvas.Left="50px"
Height="100px" Width="100px" />
</Canvas>

  而DockPanel却不是这样,DockPanel上的所有控件元素彼此都是垂直或水平地dock在一起的,DockPanel上不需要坐标,控件得位置是相对于上一个控件的。DockPanel是创建工具栏这类东西的理想的选择。例如:

<Border xmlns="http://schemas.microsoft.com/2003/xaml" Background="black" >
<DockPanel>
<Button DockPanel.Dock="Left" Width="50px" Height="32px">
Open
</Button>
<Button DockPanel.Dock="Left" Width="50px" Height="32px">
Save
</Button>
<Button DockPanel.Dock="Left" Width="50px" Height="32px">
Print
</Button>
</DockPanel>
</Border>

  结果如图6,第一个按钮在Panel的最左边,其它的按钮依次按水平排列。


图六 Button Layout

  FlowPanel又是另一种方式,它使上面的控件沿着一个方向一个接一个的排列,当控件超出了Panel的宽度或高度,你可以设置让它折叠显示到下一行或把超出的部分截掉不显示。下面这个例子演示了FlowPanel是如何折叠显示的。FlowPanel上有4个方块(其实是Border),它们的width之和大于FlowPanel的width。因此不能在一行显示所有的方块,最后一个方块被显示在第二行。FlowPanel默认的排列方向是从左至右,从上到下:

<FlowPanel Width="250px" Height="250px">
<Border Background="red" Width="75px" Height="75px" />
<Border Background="green" Width="75px" Height="75px" />
<Border Background="blue" Width="75px" Height="75px" />
<Border Background="orange" Width="75px" Height="75px" />
</FlowPanel>

  GridPanel是一个轻量级的布局管理器,它把上面的控件像网格一样进行布局,从而构造出一个简单的表格。GridPanel允许你在行或列上放上任意的控件,组合成一个控件矩阵。但是GridPanel的功能还是比较简单,要构造更为高级的表格,你可以使用Table panel。Table panel用于显示一些复杂的表格数据,它支持一些高级的表格特性比如Header、Footer、Column、Row Group等。

  最后,TextPanel用于优化文本的显示,它支持一些比较复杂的文本格式。但是,对于基本的文本显示,用Text可能是一个更好的选择,Text用于显示没有格式的文本。

  所有复责与用户交互的控件都在MSAvalon.Windows.Controls命名空间中。比如Button、ComboBox、ListBox、CheckBox、ContextMenu、RadioButtonList和PageViewer等。交互式控件的基类式Control,它提供了控件公用的属性和方法。比较特别的是PageViewer,这个控件用于查看在线文档,并且封装了分页和导航功能。下面的脚本生成一个PageViewer,它把Source属性中指定的文件中的文本分页显示出来。

<DockPanel ID="root" xmlns="http://
schemas.microsoft.com/2003/xaml/"
xmlns:def="Definition">
<Text DockPanel.Dock="Top">See a
PageViewer control in action below.
</Text>
<PageViewer DockPanel.Dock="Top"
Source="Sample.xaml" Height="80%" Width="80%"/>
<Button DockPanel.Dock="Top" Width="50%">OK</Button>
</DockPanel>

  运行结果如图7


图七 Page Viewer

  有意思的是Page Viewer不能显示纯粹的Txt、RTF或HTML,至少目前是这样。PageViewer的Source属性中指定的文件必须是一个XAML文件,该文件中被显示的ASCII文本还必须用支持分页的Avalon控件包裹(Avalon是Longhorn新的显示子系统的代号),比如TextPanel。把下面这段代码存为sample.xaml,做为上个例子中PageViewer显示的文件(注意其中的xmlns是必须的):

<TextPanel ID="root" xmlns="http://schemas.microsoft.com/2003/xaml/">
text to show goes here
</TextPanel>

  命名空间MSAvalon.Windows.Documents中的类负责文档的显示。这些类的集合看上去像HTML标签的扩充,包括Block, Column, Heading, Footer,ColumnGroup, RowGroup, HyperLink和List这些类。

  Longhorn使用Windows矢量图形(Windows Vector Graphics,简称WVG)来绘制图形内容,WVG比起GDI和GDI+来有很多优点,它是一个基于XML的图形系统,便于使用和重用,对SVG爱好者而言这是个好消息。WVG预定义的图形有Ellipse, Line, Path, Polygon, Polyline, 和Rectangle。它们都是Shape的子类。Shape可以倾斜、旋转和透明化。除了可以像以前一样使用纯色来作为背景外,你还可以指定渐进色的背景。下面这个例子使用水平渐进色来填充一个椭圆,从红色开始最后过渡到蓝色:

<Rectangle Fill="HorizontalGradient Red Blue"
RectangleLeft="150" RectangleTop="150"
Width="50" Height="50">
</Rectangle>


上一页  1 2 3 4  下一页

·"WAP天极之IT新闻资讯,50万元等你拿"    ·天极WAP之游戏狂图,50万元等你下载


发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容阅读排行榜
  • 百万像素手机大展台
  • K7终极配置 时尚游戏的追求
  • 天极游戏专访锦天科技总经理贾可
  • 10.28软件精选 找乐还是赌钱
  • 浩鑫:争夺电子竞技“F1”桂冠
  • 体验诺顿安全特警2005版的最新特色
  • NGC《生化危机4》神秘男子出现
  • VIA作客天极 最新Roadmap曝光
  • Advertisement