본문 바로가기

Silverlight

OutOfBrowser 에서의 Navigation

실버라이트3 베타가 나오면서 네비게이션 기능과 OutOfBrowser 기능이 추가가 되였는데요 그중에서
OutOfBrowser에서의 Navigation 에 대해서 쓸까 합니다.
원문의 내용은 http://www.hoons.kr/MetaBlog/Contents.aspx?blogIdx=11396 여길 가보시면 볼수 있습니다.

Navigation FrameWork 에서는 다음과 같은 APi를 제공하는데요

▷CanGoBack / CanGoForward
▷GoBack / GoForward

보시는 바와 같이 앞으로/뒤로 갈수 있는지 와 앞으로/뒤로 가기가 제공됩니다.

제가 실버라이트3를 안깔아서 -_-;; 그냥 원문에 있는 내용을 Copy....해서 넣도록 하겠습니다.

버튼을 2개 추가 하고 각각 클릭이벤트를 추가 해줍니다.
xaml

   1: <StackPanel Style="{StaticResource BrandingPanelStyle}" x:Name="JournalNav">
   2:     <Button Content="back" Style="{StaticResource PageLinkStyle}"
   3:         x:Name="NavBack" Click="NavBack_Click" />
   4:     <Button Content="forward" Style="{StaticResource PageLinkStyle}" 
   5:         x:Name="NavFwd" Click="NavFwd_Click" />
   6: </StackPanel>
cs
   1: private void NavBack_Click(object sender, RoutedEventArgs e)
   2: {
   3:     this.Frame.GoBack();
   4: }
   5:  
   6: private void NavFwd_Click(object sender, RoutedEventArgs e)
   7: {
   8:     this.Frame.GoForward();
   9: }
 
사용방법은 간단하네요 그리고 Frame에 Navigaed 라는 이벤트가 발생했을때 버튼의 Opacity를 이런식으로 조정하면 좋을것 같네요
   1: private void Frame_Navigated(object sender, NavigationEventArgs e)
   2: {
   3:     NavBack.Opacity = Frame.CanGoBack ? 1 : 0;
   4:     NavFwd.Opacity = Frame.CanGoForward ? 1:0;
   5: }
 
마지막으로 현재 상태가 OffLine(OutOfBrowser) 인지에 따라서 버튼들의 Visibility를 조절하면 OffLine상에서만 보이도록 해주는 센스를 
잊지않아주는군용
   1: void MainPage_Loaded(object sender, RoutedEventArgs e)
   2: {
   3:     JournalNav.Visibility = App.Current.RunningOffline ? Visibility.Visible : Visibility.Collapsed;
   4: }