Avalon应用程序中的导航技术分析

用户使用微软的新 Avalon UI框架组件和XAML(它是用于建立Avalon应用程序的语言)可以建立不同类型的应用程序。本文将介绍Avalon应用程序的导航特性。(请注意,从一开始起,微软就赋予Avalon一个永久的名称:Windows显示框架。在本文中,我们提及的WPF就是指Avalon)。

  WPF应用程序可以被分成两种类型:

  ·独立的Windows应用程序

  ·包含一系列页面的应用程序

  后一种类型(用户在一系列页面中导航)更加普遍。这种类型的应用程序中的导航元素是由Hyperlink(超链接)控件提供。但是Hyperlink控件也有一些缺点,例如向目标页面传递值困难、确定目标页面什么时候返回到调用页面的能力有限、给调用页面传递值也很困难。

  因此,在本文中我将演示如何来处理这些问题;我将建立一个WPF应用程序,它从一个页面导航到另一个页面,在页面之间传递值。

   导航的基础知识

  在深入讲解WPF中的页面导航理论之前,我首先 编写一个简单的应用程序,解释一些关键特性。首先,使用 Visual Studio 2005建立一个新的WPF项目(我使用的是 VB.NET),把这个应用程序命名为AvalonNavigation(图1所示)。


图1:在Visual Studio 2005中建立一个新的WPF应用程序

  解决方案管理器如图2所示:


图2:解决方案管理器中的内容。你可以看到建立的新项目。

  首先我查看项目中的MyApp.xaml文件。Avalon导航应用程序从<NavigationApplication> 根元素开始。StartupUri属性指定了应用程序执行时载入的页面;在例子中,启动页面是Page1.xaml:

<NavigationApplication x:Class="MyApp"
 xmlns="http://schemas.microsoft.com/winfx/avalon/2005"
 xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005"
StartupUri="Page1.xaml"

<NavigationApplication.Resources>
</NavigationApplication.Resources>
</NavigationApplication>
Page1.xaml的内容如下所示:
<Page x:Class="Page1"
 xmlns="http://schemas.microsoft.com/winfx/avalon/2005"
 xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005"

<Grid>

</Grid>
</Page>

  现在给项目添加一个Avalon PageFunction项:右键点击解决方案管理器中的项目名称,然后选择“添加新项…”,并选择Avalon PageFunction模板。把页面的名称改成Page2.xaml并点击“添加”(图3所示)。


图3:分页。给项目添加一个新的Avalon PageFunction项

  Page2.xaml被加入项目之后,双击它来查看其内容:

<PageFunction x:Class="Page2" x:TypeArguments="String"
 xmlns="http://schemas.microsoft.com/winfx/avalon/2005"
 xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005"

<Grid>

</Grid>
</PageFunction>

  Avalon PageFunction是一个基本的WPF页面,只是它会给调用页面返回结果(因此称为页面函数)。图4显示了如何在Page1.xaml中使用Page2.xaml并获取Page2.xaml返回的结果。


图4:A到B。现在你可以从Page1.xaml导航到Page2.xaml。

  PageFunction页面有四种类型:

  ·BooleanPageFunction——返回一个布尔型的值;<BooleanPageFunction>元素描述它。

  ·Int32PageFunction——返回一个整型的值;<Int32PageFunction>元素描述它。

  ·ObjectPageFunction——返回一个对象值;<ObjectPageFunction>元素描述它。

  ·StringPageFunction——返回一个字符串;<StringPageFunction>元素描述它。

共4页。 1 2 3 4 8 :
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值