0

this.NavigationService.Navigate(new Uri(page.xaml, UriKind.Relative));每次我需要导航到应用程序中的不同页面时,我都厌倦了打字。

因此,我创建了一个BasePage带有虚拟的自定义项,以帮助在我的应用程序中导航。

我遇到的问题是在 VS2010 中,如果我打开了源代码和设计视图,则该设计仅显示 windows phone 背景,并且我从 xaml 的顶部到底部得到一些蓝色的摆动线以及沿 x 线的消息不支持。这发生在我设置为从自定义 BasePage 继承的任何页面上。

但是,如果我在我的 Windows Phone 或 Emmulator 中运行该应用程序,它就会工作。

有没有人对我可以在应用我的自定义基础时尝试保持我的设计视图正常工作有什么建议,或者如果我错过了什么?

我的 BasePage 的一个略微精简的版本是:

public class BasePage : PhoneApplicationPage
{
    public virtual void NavigateTo(string pageName, params Tuple<string,string>[] queryString)
    {
      // Code to perform this.NavigationService.Navigate
    }
}

编辑 2011-08-16

此基本页面的一部分覆盖了PhoneApplicationPage'OnNavigatedTo方法,我在该方法中执行安全检查以查看是否:

  1. 已启用安全性
  2. 用户已登录

如果启用了安全性但用户没有登录,他们会立即被重定向到登录页面。

我发现这很有用,因为我不必向现有或新页面添加任何代码来处理这个问题,只要它们从BasePage.

4

1 回答 1

1

我不建议为此使用 BasePage。相反,只需将您的NavigateTo方法添加到App.xaml.cs文件中,作为静态方法。

public static void NavigateTo(string pageName, params Tuple<string,string>[] queryString)
{
  // Code to perform this.NavigationService.Navigate
}

另外,请记住将调用包装起来.NavigateDispatcher.BeginInvoke以便正确执行所有过渡效果。

并且作为奖励提示:不要在 Visual Studio 中使用设计器。相反,将 XAML 文件的“默认编辑器”设置为“源代码”编辑器,这样设计器就永远不会打开。这使 Visual Studio 更加稳定。

如果你想要一个设计师,你应该得到 Microsoft Expression (Blend)

于 2011-08-15T18:46:08.043 回答