框架导航问题在抽屉布局Windows Phone 8.1(Universal)Winrt中的背面按钮上



我想在我的应用中使用抽屉布局作为汉堡包作为带有子/内容页面的主页面,我在下面写了带有框架标签的代码,以导航到单击抽屉布局的菜单。

下面是我的xaml

<Grid x:Name="Rootlayout">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <!-- title bar-->
    <Grid x:Name="TitleBar" Height="50" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Background="SkyBlue">
        <Image  Source="/Assets/fs-logo.png" Height="50" HorizontalAlignment="Left" Margin="10,0,0,0"/>
    </Grid>
    <!--Drawer Layout-->
    <drawer:DrawerLayout x:Name="DrawerLayout" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2">
        <Grid>
            <Frame x:Name="contentFrame" />
        </Grid>
        <Grid x:Name="listFragment" FlowDirection="LeftToRight" >
            <ListView x:Name="listItem" SelectionChanged="listItem_SelectionChanged">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding}" FontSize="20" Foreground="Black" Margin="10" VerticalAlignment="Center" HorizontalAlignment="Left"/>      
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </Grid>
    </drawer:DrawerLayout>
</Grid>

虽然行为完全按照我的意愿,但是硬件返回按钮存在问题,就像按下应用程序退出时一样。甚至我都使用以下代码为app.xaml.cs

,也有hange back按钮按事件
//Below code of line in app constructor & it's method defination
#if WINDOWS_PHONE_APP
HardwareButtons.BackPressed += HardwareButtons_BackPressed;
#endif
#if WINDOWS_PHONE_APP    
void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e)
{
    Frame rootFrame = Window.Current.Content as Frame;
    if (frame != null && frame.CanGoBack)
        {
            frame.GoBack();
            e.Handled = true;
        }
}
#endif

任何人都可以帮助我如何解决此问题的后退按钮,或者我有什么其他方法可以利用抽屉布局,而我不必在每个页面上编写抽屉布局XAML代码。一种方法是使用USERCONTROL,但由于内容网格是DrawerLayout的一部分,因此我无法弄清楚如何俱乐部USercontrol&amp;我的普通页面XAML。请提前帮助

您在错误的框架上检查CanGoBack

Window.Current.Content是包含抽屉layout的基础框架。您实际想解决的是其中的contentFrame

所以您真正想看的是:

(Window.Current.Content as RootPage)?.Frame.CanGoBack

其中 RootPage是您在问题中发布的XAML页面的名称。

最新更新