2012-10-11 6 views
-1

프레임과 일부 버튼의 메인 페이지에서 WPF 애플리케이션을 만들고 있습니다. Button1을 누르면 내 프레임이 Page1로 이동합니다.WPF 현재 프레임 가져 오기

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

Button2를 누르면 페이지 1이 프레임에서 열려있는 경우에만 Page2로 이동해야합니다. 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)); 
     }