2012-10-11 139 views
-1

我正在製作一個WPF應用程序,在主頁中有一個Frame和一些按鈕。 如果我按Button1我的框架導航到Page1,WPF獲取當前幀

Page1 vPage1 = new Page1();
Frame.Content = vPage1;

如果我按Button2它應該只導航到Page2如果Page1在框架中打開。 如何檢查Page1是否打開?

Thx

+0

爲什麼你不能使用布爾變量? – Vlad

+0

爲什麼你不使用接口並提供下一頁和上一頁。或者甚至你可以在導航事件上玩和存儲變量 – JSJ

+0

那麼它的一點點複雜,然後我的問題。我只是試着簡單地問一下。 –

回答

0

這是一個適合您的樣本。

XAML

</Grid.RowDefinitions> 
    <Frame x:Name="fram" NavigationUIVisibility="Hidden" 
      Background="Silver" 
      Navigated="Frame_Navigated" 
      Source="Pages/Page1.xaml" /> 
    <StackPanel Grid.Row="1" 
       HorizontalAlignment="Right" 
       Orientation="Horizontal"> 
     <Button x:Name="btnPrev" 
       Click="btnPrev_Click" 
       Content="Prev" /> 
     <Button x:Name="btnNext" 
       Click="btnNext_Click" 
       Content="Next" /> 
    </StackPanel> 
</Grid> 

代碼。

int pageindex; 

     private void btnPrev_Click(object sender, RoutedEventArgs e) 
     { 
      if (pageindex <= 1) 
      { 
       fram.Navigate(new Uri("Pages/Page" + (pageindex + 2) + ".xaml",UriKind.Relative)); 
       return; 
      } 
      fram.Navigate(new Uri("Pages/Page" + (pageindex - 1) + ".xaml", UriKind.Relative)); 
     } 

     private void btnNext_Click(object sender, RoutedEventArgs e) 
     { 
      if (pageindex >= 3) 
      { 
       fram.Navigate(new Uri("Pages/Page" + (pageindex - 2) + ".xaml", UriKind.Relative)); 
       return; 
      } 
      fram.Navigate(new Uri("Pages/Page" + (pageindex + 1) + ".xaml", UriKind.Relative)); 
     } 

     private void Frame_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e) 
     { 
      pageindex = Convert.ToInt32(e.Content.GetType().Name.Substring(4)); 
     }