2017-01-17 45 views
0

我在XAML中爲我的UWP應用程序創建了這個'漢堡菜單'。點擊菜單項時,我使用框架顯示不同的頁面。打開框架後,XAML中的漢堡菜單消失

我的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

你與主框架導航,您應該使用一個在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已經創建,你不需要有一個參考來覆蓋它主頁面框架。

+0

謝謝!它像一個魅力! – Chris