我正在Windows 8上开发简单的应用程序
我有两个UserControl:位置和 LocationsMap 。
我试图在他们之间导航。为此,我已将静态方法添加到App中。他们是这样的
public static void ShowLocationsMap()
{
var page = new LocationsMap();
Window.Current.Content = page;
}
导航工作正常。 但有一个问题。我从ApplicationBar中的按钮调用此方法。 XAML看起来像这样
<ApplicationBar x:Name="BottomAppBar" Height="88" VerticalAlignment="Bottom" Style="{StaticResource AppBarStyle}" Grid.Row="1">
<StackPanel Orientation="Horizontal">
<!-- Margin="left,top,right,bottom" -->
<StackPanel Orientation="Vertical" Margin="5,14,5,14">
<Button Content="Map" Click="MapButton_Click"></Button>
</StackPanel>
</StackPanel>
</ApplicationBar>
我正从下一页调用其他功能导航回来
问题是,当我向后导航时,ApplicationBar停止工作。右键单击后无法显示。如果我将 BottomAppBar.IsOpen 设置为 true ,它会显示,但没有关闭。
问题出在哪儿?
P.S。的
如果我从控件XAML上的按钮导航到其他页面,ApplicationBar也不能正常工作,因此问题不在AppBar内的按钮上。
答案 0 :(得分:1)
对于导航,我使用从互联网下载的示例代码。该代码使用的是App类中定义的静态函数,它们正在改变 Window.Current.Content 。
那是个坏主意。相反,如果我只需要使用Frame navigation
使用时我们需要更改控件from UserControl to Page的类型
应用栏现在可以很好地用于导航。
希望这会对某人有所帮助。