如何在Silverlight中实现NavigationService

时间:2012-11-13 03:39:13

标签: c# silverlight user-controls

我的Silverlight应用程序有多个XAML页面。例如,一个显示时钟,一个显示计时器。我有按钮可以来回切换:

 private void switchRight(object sender, RoutedEventArgs e)
    {
        this.Content = new Clock();
    }

    private void switchLeft(object sender, RoutedEventArgs e)
    {
        this.Content = new Timer();
    }

我正在尝试使用NavigationService来回切换,这样我就可以在后台运行其他页面,而不是每次都创建一个新实例。

我正在尝试

NavigationService.Navigate(new uri("/Timer.xaml", UriKind.Relative));

但它似乎没有做任何事情,我找不到任何好的例子来帮助。

1 个答案:

答案 0 :(得分:0)

这是一个链接 http://blogs.msdn.com/b/dphill/archive/2009/04/28/silverlight-navigation-part-3.aspx

此外,我认为您可以使用线程进行后台处理。即,启动计时器时无需显示任何xaml。

但对于页面实例,您需要非常小心地管理它,否则stackoverflow:)

根据业务规则,很难将导航定义为在Web浏览器中。

我们创建了自己的向导(带有规则)。您可以创建自己的NavigationManager。为了验证,我可以提供http://fluentvalidation.codeplex.com/