导航Windows 8后ApplicationBar无法正常工作

时间:2012-02-16 20:52:33

标签: windows-8 windows-runtime microsoft-metro

我正在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内的按钮上。

1 个答案:

答案 0 :(得分:1)

对于导航,我使用从互联网下载的示例代码。该代码使用的是App类中定义的静态函数,它们正在改变 Window.Current.Content
那是个坏主意。相反,如果我只需要使用Frame navigation 使用时我们需要更改控件from UserControl to Page的类型 应用栏现在可以很好地用于导航。
希望这会对某人有所帮助。