科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件用Avalon建立未来的Windows用户界面

用Avalon建立未来的Windows用户界面

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

大多数开发人员对于即将到来的Windows Vista中的两个特性很感兴趣,其中一个就是Avalon。

作者:陶刚编译 来源:天极网 2007年11月4日

关键字: Avalon Windows 用户界面

  • 评论
  • 分享微博
  • 分享邮件
大多数开发人员对于即将到来的Windows Vista(以前称为Longhorn)中的两个特性很感兴趣,其中一个就是Avalon。Avalon是WinFX中显示子系统类库的代号,它是Vista/Longhorn中新的应用程序编程接口(API)。Avalon由一个显示引擎和一个受控代码框架组件组成。你可以使用Avalon建立逼真的Longhorn应用程序,把应用程序UI、文档和媒体内容混合在一起。

  尽管Vista大约还需要过一年时间才会发布(预计发布时间是2006年末),但是微软最近还是在Beta1 RC中为公众提供了Avalon和Indigo(开发者感兴趣的另一个特性)的一个版本。任何希望在Windows XP上测试Avalon和Indigo特性的人员都可以下载这个RC beta版,并学习Avalon和Indigo提供的重大特性。

  起步

  如果你希望在Windows XP上试验Avalon,需要安装下面一些内容:

  ·微软预发布的软件“Avalon”和“Indigo”Beta1 RC:

http://www.microsoft.com/downloads/details.aspx?familyid=b789bc8d-4f25-4823-b6aa-c5edf432d0c1&displaylang=en

  ·WinFX SDK(软件开发工具包):

http://download.microsoft.com/download/5/4/0/5407D6E4-740E-413E-8E91-EF7AC53A478A/en_winfx_sdk_beta1_RC.iso

  ·微软Visual Studio 2005

  编译和运行Avalon应用程序的最简单的途径是使用Visual Studio 2005,它现在处于Beta 2测试中(你可以使用WinFX SDK中包含的MSBuild工具来手动编译Avalon应用程序,但是这个过程非常乏味,我们并不推荐)。

  XAML——Vista标记语言

  在Avalon中,你使用XAML标记语言来建立应用程序的UI。使用XAML建立UI的过程与建立HTML页面的过程相似。你使用标记来呈现(render)那些希望显示在页面上的控件。XAML与HTML不同,它是基于XML的,因此你必须确保XAML页面严格地遵循XML的规则,例如元素(element)和属性(attribute)的名称是大小写敏感的,必须恰当地为属性提供值,等等。

  XAML中的每个元素都被映射为一个类,属性(attribute)则被映射为属性(property)。编译XAML应用程序的时候,UI被转换为对象模型(object-model)代码并使用局部(partial)类与后台代码组合在一起。因此,除了使用XAML生成UI之外,你还可以使用代码编程来建立UI。在本文后面我将为你解释后台代码的使用方法。

  目前的WinFX SDK不支持任何用于建立XAML UI的可视化编辑器,但是毫无疑问,微软不久就会发布一个。到时候你就可以手动编写XAML页面了。与WinFX SDK一起提供的XAMLPad编辑器允许你快速地建立和测试那些用XAML建立的用户界面。

  载入XAMLPad的步骤是“开始->程序->微软WinFX SDK ->工具-> XAMLPad”。

  XAMLPad编辑器窗口被分成两个面板:你在下面的面板中输入XAML代码,上面的面板将根据你输入的XAML代码实时地显示UI。XAMLPad易于使用,不需要你编译。现在我将介绍少量的简单练习内容,用于演示Avalon可以建立的不同类型的应用程序。

  我们开始建立示例应用程序,在XAMLPad中输入下面的代码:

<StackPanel Background="LightBlue" xmlns="http://schemas.microsoft.com/winfx/avalon/2005">
<Button Name="Button1" Width="100" HorizontalAlignment="Left" Margin="10,10,10,5">
 This is a button
</Button>
<TextBlock HorizontalAlignment="Left" Margin="10,5,10,5">
 This is a text block
</TextBlock>
<TextBox Name="Button1" Width="200" HorizontalAlignment="Left" Margin="10,5,10,5">
 This is a textbox
</TextBox>
</StackPanel>

  输入完成以后,你将看到XAMLPad呈现的UI(图1所示)。


图1:呈现UI的 XAMLPad。XAMLPad上面的面板实时地呈现下面的面板中输入的代码。

  如果XAML代码中有错误,代码将会显示为红色,错误信息会出现在屏幕底部。

  现在仔细查看一下你刚刚输入的代码。首先,StackPanel元素处理页面的布局,同时作为其它控件(例如按钮和文本框)的容器。StackPanel控件把自己所包含的控件排列成一条线,要么水平排列,要么垂直排列。在默认情况下,对齐方式是垂直的,也就是一个控件在另外一个控件的上面(图1所示)。如果要水平地排列控件,只需要简单地把StackPanel元素的Orientation属性设置为“Horizontal”(图2所示)。


图2:水平排列控件。
通过把StackPanel 元素的Orientation属性设置为Horizontal,还可以改变控件默认的垂直排列方式。

  Button元素在页面上显示一个按钮。在默认情况下,按钮的宽度刚刚能够容纳你所设置的文本(使用该元素的文本内容设置)。但是,你可以通过设置Width属性手动地调整按钮控件的宽度。你可以使用HorizontalAlignment属性来调整的按钮元素的位置。Margin(页边空白)属性在控件上设置了一个不可见的包装,这样就保证了控件之间有最小的距离,因此避免了控件偶然的“重叠”(图3所示)。Margin属性的值按次序设置——分别是“左、上、右、下”。


图3:使用Margin属性。
按钮控件被“空白”包围着,可以防止其它控件被放置得过于靠近。

  TextBlock元素在页面上显示标签(平面文本内容不能被选中或改变),TextBox控件在页面上显示文本框(用户可修改的文本)。
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章