Visual studio 2010 导致设计视图中断的自定义基页
我厌倦了键入Visual studio 2010 导致设计视图中断的自定义基页,visual-studio-2010,windows-phone-7,inheritance,windows-phone-7.1,Visual Studio 2010,Windows Phone 7,Inheritance,Windows Phone 7.1,我厌倦了键入this.NavigationService.Navigate(新Uri(page.xaml,UriKind.Relative)),每次我需要导航到应用程序中的不同页面时 因此,我创建了一个自定义BasePage,其中包含一个虚拟页面,以帮助在我的应用程序中导航 我遇到的问题是在VS2010中,如果我打开了源代码和设计视图,设计只显示windows phone背景,我的xaml从顶部到底部有一些蓝色的摇摆线,不支持沿x线的消息。这发生在我设置为从自定义基本页继承的任何页面上 但是,如
this.NavigationService.Navigate(新Uri(page.xaml,UriKind.Relative))代码>,每次我需要导航到应用程序中的不同页面时
因此,我创建了一个自定义BasePage
,其中包含一个虚拟页面,以帮助在我的应用程序中导航
我遇到的问题是在VS2010中,如果我打开了源代码和设计视图,设计只显示windows phone背景,我的xaml从顶部到底部有一些蓝色的摇摆线,不支持沿x线的消息。这发生在我设置为从自定义基本页继承的任何页面上
但是,如果我在Windows Phone或Emmulator上运行该应用程序,它将正常工作
是否有人对我在应用自定义基础时,或者如果我遗漏了什么,我可以尝试让我的设计视图保持工作状态有什么建议
略为精简的my BasePage版本是:
public class BasePage : PhoneApplicationPage
{
public virtual void NavigateTo(string pageName, params Tuple<string,string>[] queryString)
{
// Code to perform this.NavigationService.Navigate
}
}
公共类基页:PhoneApplicationPage
{
公共虚拟void NavigateTo(字符串pageName,参数元组[]查询字符串)
{
//执行此操作的代码。NavigationService.Navigate
}
}
编辑2011-08-16
此基本页的一部分覆盖了PhoneApplicationPage
的OnNavigatedTo
方法,在该方法中,我执行安全检查以查看是否:
安全性已启用
用户已登录
如果启用了安全性,但用户未登录,则会立即将其重定向到登录页面
我发现这很有用,因为我不需要向现有页面或新页面添加任何代码来处理这一问题,只要它们来自BasePage
,我不建议为此使用BasePage。相反,只需在App.xaml.cs
文件中添加NavigateTo
方法作为静态方法即可
public static void NavigateTo(string pageName, params Tuple<string,string>[] queryString)
{
// Code to perform this.NavigationService.Navigate
}
publicstaticvoidnavigateTO(字符串pageName,参数Tuple[]queryString)
{
//执行此操作的代码。NavigationService.Navigate
}
另外,请记住在Dispatcher.BeginInvoke
中包装对的调用,以便正确执行所有转换效果
还有一个额外提示:不要在VisualStudio中使用设计器。相反,将XAML文件的“默认编辑器”设置为“源代码”编辑器,这样就永远不会打开设计器。这使VisualStudio更加稳定
如果你想要一个设计师,你应该获得Microsoft Expression(Blend)谢谢你的帮助,我可能应该添加我使用OnNavigateTo
覆盖,这样我就可以在每个页面上检查我的应用是否开启了密码功能,然后在进入页面之前检查我是否登录。已经有expression blend,也有sdk工具,这就是为什么我的BasePage不会返回设计的原因。我发现我不能将此作为静态方法,因为this.NavigationService.NavigateTo
不起作用。导航服务不会在应用程序类中编译,或者我遗漏了什么?哦,对了,当然,你需要在当前的RootVisual上调用它<代码>(App.rootvisualas PhoneApplicationFrame)。导航到(…)
今晚我会试试。你对我如何在我的页面上执行安全检查有什么建议吗?或者最好还是从应用程序
以静态方式再次执行,只需从每个页面的on导航到
?我已经在编辑中解释了我的问题。此类检查属于您的viewmodel或通用应用程序逻辑。如果您当前的想法是查看每一页,那么您应该重新考虑您的体系结构。