전공/WPF 삽질들..

Disable Backspace, Navigate application

무한공백 2014. 3. 21. 17:55


WPF 에서 Navigate 구조를 이용할 경우 Backspace 키를 누르면 이전으로 돌아간다.

이것을 방지하기 위해서는 아래와 같이 한다.


1. 윈도우 자체가 NavigationWindow를 상속받은 경우

public partial class Window1 : NavigationWindow
{
    public Window1()
    {
        InitializeComponent();

        this.NavigationService.Navigated += new NavigatedEventHandler(NavigationService_Navigated);
    }

    private void NavigationService_Navigated(object sender, NavigationEventArgs e)
    {
        this.NavigationService.RemoveBackEntry();
    }
}


2. Window 안에 Frame의 Navigate를 이용하는 경우

만약 Window 안에 Frame을 위치시킨 후 Frame의 Navigate 기능을 이용하는 경우는 아래와 같이 한다.

public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();

        myFrame.NavigationService.Navigated += new NavigatedEventHandler(NavigationService_Navigated);
    }

    private void NavigationService_Navigated(object sender, NavigationEventArgs e)
    {
        myFrame.NavigationService.RemoveBackEntry();
    }
}