실버라이트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: }