프로그래밍 기술/WPF

[WPF] 4. 탐색 - 4.1.4 NavigationService 이용하기

언제나휴일 2016. 5. 24. 13:48
반응형

  [WPF] 4. 탐색 - 4.1.4 NavigationService 이용하기


4.1.4 NavigationService 이용하기

 소스 코드에서 조건에 맞는 페이지를 탐색할 때 NavigationService를 사용할 수 있습니다하이퍼링크를 이용하여 탐색 요청할 때도 내부에서는 NavigationService Navigate 메서드를 호출하여 해당 Page를 탐색을 하는 것입니다.

 

 이를 확인하기 위해 먼저 WPF 응용 프로그램을 생성하세요.

NavigationService 사용하기 프로젝트 생성

[그림 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));

}

 

NavigationService 사용하기 실행 화면

[그림 4.11] NavigationService 사용하기 실행 화면

 

 WPF에서는 탐색을 하였을 때 탐색 히스토리를 스택에 보관을 하는데 이를 관리하는 기능을 저널이라고 부릅니다여러분들은 인터넷 익스플로러를 통해 이미 저널에서 제공하는 기능에 익숙해져 있을 것입니다이를 사용하고자 한다면 NavigationService GoBack, GoFoward, CanGoBack, CanGoForward 등의 메서드를 사용하세요.


관련 게시글

[WPF] 4. 탐색 - 4.1.1 Page

[WPF] 4. 탐색 - 4.1.2 Hyperlink 사용하여 페이지 이동

[WPF] 4. 탐색 - 4.1.3 Frame 이용하기

[WPF] 4. 탐색 - 4.2 PageFunction을 이용한 구조적 탐색

[WPF] 4. 탐색 - 4.3 탐색 종합 세트, 마법사


실습 파일

NavigationService 이용하기.zip


반응형