Bu yazımda kısaca bir WPF Browser uygulamasında o an bulunulan sayfaya hangi sayfadan gelindiğini nasıl öğrenebileceğimizden bahsetmek istiyorum.Özetle yapmamız gerekenler öncelikle uygulamamızdaki ilk sayfadan sonraki sayfaya gitmemiz navigasyon yapmamız gerekiyor.Daha sonra diğer sayfaya yönlenmeden önce  navigasyon yapılan sayfanın adresi alınarak bir property sayesinde enkapsüle edilmiştir.İşte bu property’yi de her sayfadan ulaşabilmek için App.xaml.cs de tanımlamalıyız.Kaynak kodlar ise oldukça basit ve anlaşılırdır:

App.xaml.cs   

public partial class App : Application   

{       

private static Uri referrer;

   //Gelinen sayfanın ismini tutan propoperty.       

public static Uri Referrer        

{   

get{return referrer;}       

}        

//Bir adrese navigasyon yapılırkenki durumu yakalayarak adresi alıyoruz.       

protected override void OnNavigating(NavigatingCancelEventArgs e)       

{           

 base.OnNavigating(e);            

 referrer = null;           

 if (e.Navigator is NavigationWindow)           

  {               

      referrer = ((NavigationWindow)e.Navigator).CurrentSource;

  }           

 else if (e.Navigator is Frame)           

  {               

     referrer = ((Frame)e.Navigator).CurrentSource;           

   } }       

protected override void OnNavigationStopped(NavigationEventArgs e)       

{           

  base.OnNavigationStopped(e);           

  referrer = null;       

} 

}

Page2 sayfasına yönlenmek için Page1 sayfamıza bir düğme yerleştirerek Click olayına  tek satırlık bir kod yazmamız gerekli:

Page1.xaml

private void Button_Click(object sender, RoutedEventArgs e)       

{           

   //Navigation servis kullanılarak Page2 isimli sayfaya yönlendiriliyor.           

  this.NavigationService.Navigate(new Uri("Page2.xaml", UriKind.Relative));       

}

Son olarak Page2.xaml sayfamıza bir etiket yerleştirerek hangi  sayfadan yönlendirilidğini yazdırmak için sayfamızın Load olayına:

Page2.xaml

txtRefered.Text = "Gelinilen sayfa:" + App.Referrer.OriginalString;

Kolay gelsin.  

Kaynak kod.zip (35,65 kb)

About the Author