[WPF] 4. 탐색 - 4.1.4 NavigationService 이용하기
4.1.4 NavigationService 이용하기
소스 코드에서 조건에 맞는 페이지를 탐색할 때 NavigationService를 사용할 수 있습니다. 하이퍼링크를 이용하여 탐색 요청할 때도 내부에서는 NavigationService의 Navigate 메서드를 호출하여 해당 Page를 탐색을 하는 것입니다.
이를 확인하기 위해 먼저 WPF 응용 프로그램을 생성하세요.
[그림 4.10] NavigationService 사용하기 프로젝트 생성
NavigationService를 이용하는 간단한 예를 들기 위해 텍스트 상자에 웹 페이지 주소를 입력하여 하이퍼링크를 누르면 해당 주소로 탐색되는 응용 프로그램을 만들어 볼게요. 여기에서는 웹 페이지로 탐색하는 예를 들었지만 WPF 페이지로 탐색도 가능합니다.
생성한 프로젝트에 SearchPage 이름으로 Page를 하나 추가합시다. 그리고, Window 내부 요소로 Frame 하나를 포함시킨 후에 Source 속성을 SearchPage.xaml로 설정하세요.
Window1.xaml |
<Window x:Class="NavigationService_이용하기.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:NavigationService_이용하기" mc:Ignorable="d" Title="MainWindow" Height="350" Width="525"> <Frame Source="SearchPage.xaml"/> </Window> |
그리고, SearchPage에 텍스트 박스와 하이퍼링크를 추가한 후에 하이퍼링크에 Click 이벤트 핸들러를 추가하세요.
SearchPage.xaml |
<Page x:Class="Ex_NaviService.SearchPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml Title="SearchPage"> <StackPanel > <TextBox Name="tbox_addr"/> <TextBlock> <Hyperlink Click="Hyperlink_Click">이동하기</Hyperlink> </TextBlock> </StackPanel> </Page> |
하이퍼링크의 Click 이벤트 핸들러에서는 NavigationService의 Navigate 메서드를 호출하면 원하는 주소가 탐색되어 프레임에 보여줍니다.
private void Hyperlink_Click(object sender, RoutedEventArgs e)
{
string urlstr = tbox_addr.Text;
NavigationService.Navigate(new Uri(urlstr));
}
[그림 4.11] NavigationService 사용하기 실행 화면
WPF에서는 탐색을 하였을 때 탐색 히스토리를 스택에 보관을 하는데 이를 관리하는 기능을 저널이라고 부릅니다. 여러분들은 인터넷 익스플로러를 통해 이미 저널에서 제공하는 기능에 익숙해져 있을 것입니다. 이를 사용하고자 한다면 NavigationService의 GoBack, GoFoward, CanGoBack, CanGoForward 등의 메서드를 사용하세요.
관련 게시글
[WPF] 4. 탐색 - 4.1.2 Hyperlink 사용하여 페이지 이동
[WPF] 4. 탐색 - 4.1.3 Frame 이용하기
[WPF] 4. 탐색 - 4.2 PageFunction을 이용한 구조적 탐색
[WPF] 4. 탐색 - 4.3 탐색 종합 세트, 마법사
실습 파일
'프로그래밍 기술 > WPF' 카테고리의 다른 글
[WPF] 5. 레이아웃과 Panel - 5.1 Grid, 5.1.2 cs 소스에서 코드로 배치하기 (0) | 2016.05.24 |
---|---|
[WPF] 5. 레이아웃과 Panel - 5.1 Grid, 5.1.1 xaml 태그를 이용하여 배치 (2) | 2016.05.24 |
[WPF] 5. 레이아웃과 Panel (0) | 2016.05.24 |
[WPF] 4. 탐색 - 4.3 탐색 종합 세트, 마법사 (0) | 2016.05.24 |
[WPF] 4. 탐색 - 4.2 PageFunction을 이용한 구조적 탐색 (0) | 2016.05.24 |
[WPF] 4. 탐색 - 4.1.3 Frame 이용하기 (1) | 2016.05.24 |
[WPF] 4. 탐색 - 4.1.2 Hyperlink 사용하여 페이지 이동 (0) | 2016.05.24 |
[WPF] 4. 탐색 - 4.1.1 Page (0) | 2016.05.24 |
[WPF] 3.4 이벤트 처리 (0) | 2016.04.19 |
[WPF] 3.3 Window 기본 속성들 (0) | 2016.04.19 |