C#,Windows Phone 7,使用if-else语句检查显示的页面
现在我正在开发一个WindowsPhone7应用程序,我的应用程序在应用程序栏上有三个按钮。以下是这三个按钮的事件处理程序:C#,Windows Phone 7,使用if-else语句检查显示的页面,c#,windows-phone-7,if-statement,C#,Windows Phone 7,If Statement,现在我正在开发一个WindowsPhone7应用程序,我的应用程序在应用程序栏上有三个按钮。以下是这三个按钮的事件处理程序: //app bar page navigation private void ApplicationBarIconButton_Click1(object sender, EventArgs e) { if(//check if the current displayed page is mainpage) {
//app bar page navigation
private void ApplicationBarIconButton_Click1(object sender, EventArgs e)
{
if(//check if the current displayed page is mainpage)
{
//do nothing
}
else
{
NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.RelativeOrAbsolute));
}
}
private void ApplicationBarIconButton_Click2(object sender, EventArgs e)
{
NavigationService.Navigate(new Uri("/Audios.xaml", UriKind.RelativeOrAbsolute));
}
private void ApplicationBarIconButton_Click3(object sender, EventArgs e)
{
NavigationService.Navigate(new Uri("/Statistics.xaml", UriKind.RelativeOrAbsolute));
}
除了第一个按钮(button\u Click1
)外,按钮导航功能运行良好,因为当我第一次访问主页并单击第一个按钮时,应用程序将自动返回到应用程序列表
因此,我想使用if-else语句检查当前显示的页面,然后决定是导航还是停留在当前页面。按钮click1应从主页中删除。把那个按钮放在那里是没有意义的
其他页面应使用后退按钮返回主页面。否则你会弄乱你的后台堆栈。看起来你在使用ApplicationBar,就像在iPhone中使用TabBar一样(或者在Android、Bada等中也使用类似的工具) 在WP7中,Metro样式通常使用轴或全景,而不是“选项卡栏”进行这种类型的导航 如果您确实希望像这样使用ApplicationBar:
- 然后你可以(WP7市场将允许),但用户可能会觉得它不是很地铁 <> LI>您可能想考虑禁用适当的按钮,而不是仅仅是将该动作清除。
- 然后,您可以使用NavigationService上的
检测当前显示的页面CurrentSource
另外,请务必注意,如果您尝试从
MainPage.xaml
导航到同一urlMainPage.xaml
,则您将看到一个异常-我记得,导航服务抱怨url片段不受支持 把后台搞得一团糟?你的意思是完全删除应用程序栏?你应该为每页定制一个应用程序栏。要避免的一件事是让第1页转到第2页,然后第2页上的按钮链接回第1页。后堆栈(类似于浏览器历史)现在有p1、p2、p1。从第一页返回将退出应用程序,但如果按后退按钮,将转到p2。补救办法是让用户使用“后退”按钮从p2返回p1。“每页一个应用程序栏,可根据页面定制”,感谢提示,我已经为每页定制了应用程序栏:)