1

我有自己的堆栈/导航模型,但我希望标准的后退按钮出现在我的页面标题旁边。

我需要什么代码才能让它出现?

这些例子只是做这样的事情:

    void Header_Click(object sender, RoutedEventArgs e)
    {
        // Determine what group the Button instance represents
        var group = (sender as FrameworkElement).DataContext;

        // Navigate to the appropriate destination page, configuring the new page
        // by passing required information as a navigation parameter
        this.Frame.Navigate(typeof(GroupDetailPage), 
            ((SampleDataGroup)group).UniqueId);
    }

它会自动出现。

我浏览了各种 msdn 页面,但他们大多谈论设计模式。

谢谢

4

1 回答 1

3

在 Visual Studio 项目模板(除了空白应用程序)中,您将在页面中看到以下 XAML

<Button x:Name="backButton" Click="GoBack" IsEnabled="{Binding Frame.CanGoBack, ElementName=pageRoot}" Style="{StaticResource BackButtonStyle}"/>

所以按钮的可见性取决于应用程序是否有后台堆栈,pageRoot这里是x:Name与给定页面关联的。

请注意,GoBack 方法是您为除空白模板之外的所有模板获取的 LayoutAwarePage 的一部分。听起来您有自己的“LayoutAwarePage”版本,在这种情况下,您必须连接任何有意义的代码才能在导航模型的后退按钮上执行。

请记住,LayoutAwarePage 将是许多 Windows 应用商店应用程序的基础,因此如果您与事实上的默认导航方案偏离太多,您可能会混淆习惯于在其他应用程序中使用的用户。也许从 LayoutAwarePage 扩展是否有意义,在这种情况下,您将获得默认行为(包括“后退”按钮),然后您可以在顶部添加自己的特殊酱汁?

于 2012-12-19T22:36:40.210 回答