首页 文章

打开Frame后,XAML中的汉堡菜单消失

提问于
浏览
1

我在XAML中为我的UWP应用程序创建了这个“汉堡菜单” . 单击菜单项时,我正在使用框架显示不同的页面 .

我的XAML:

<Grid.Background>
       <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="#FF298025" Offset="0"/>
            <GradientStop Color="#FF107C10" Offset="1"/>
       </LinearGradientBrush>
</Grid.Background>
<Grid.RowDefinitions>
       <RowDefinition Height="auto" />
       <RowDefinition Height="*" />
</Grid.RowDefinitions>
<RelativePanel>
       <Button x:Name="HamburgerButton" FontFamily="Segoe MDL2 Assets" Content="&#xE700;" FontSize="36" Click="HamburgerButton_Click" />
</RelativePanel>
<SplitView x:Name="MySplitView"
                 Grid.Row="1" 
                 DisplayMode="CompactOverlay" 
                 OpenPaneLength="200" 
                 CompactPaneLength="56" 
                 HorizontalAlignment="Left">
        <SplitView.Pane>
              <ListBox SelectionMode="Single" x:Name="IconsListBox" SelectionChanged="IconsListBox_SelectionChanged">
                 <ListBoxItem x:Name="VoteListBoxItem">
                      <StackPanel Orientation="Horizontal">
                          <TextBlock FontFamily="Segoe MDL2 Assets" FontSize="36" Text="&#xE8E1;" />
                          <TextBlock Text="Vote" FontSize="24" Margin="20,0,0,0" />
                      </StackPanel>
                  </ListBoxItem>
                  <ListBoxItem x:Name="AppDetailsListBoxItem">
                      <StackPanel Orientation="Horizontal">
                          <TextBlock FontFamily="Segoe MDL2 Assets" FontSize="36" Text="&#xE115;" />
                          <TextBlock Text="App Details" FontSize="24" Margin="20,0,0,0" />
                      </StackPanel>
                  </ListBoxItem>
              </ListBox>
        </SplitView.Pane>
        <SplitView.Content>
              <Frame x:Name="ViewFrame" />
        </SplitView.Content>
</SplitView>

我的C#:

private void IconsListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
     ViewFrame = this.Frame;
     if (VoteListBoxItem.IsSelected) { Frame.Navigate(typeof(VotePage)); }
     else if (AppDetailsListBoxItem.IsSelected) { Frame.Navigate(typeof(AppDetailsPage)); }
}

private void HamburgerButton_Click(object sender, RoutedEventArgs e)
{
     MySplitView.IsPaneOpen = !MySplitView.IsPaneOpen;
}

这个代码的问题是每当点击一个菜单项,一个页面确实加载到框架中,但整个'汉堡菜单'消失 .

1 回答

  • 1

    您正在使用主框架导航,您应该使用SlipView内容中声明的那个,如下所示:

    private void IconsListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (VoteListBoxItem.IsSelected)
            ViewFrame.Navigate(typeof(VotePage));
        else if (AppDetailsListBoxItem.IsSelected)
            ViewFrame.Navigate(typeof(AppDetailsPage));
    }
    

    确实已经创建了 ViewFrame ,您不需要通过引用主页框来覆盖它 .

相关问题