Grid 같은 패널에 Add,Clear 하면서 임시로 nagiation처럼 되도록 하는 방법이 있지만
Frame을 이용하면 더 깔끔하게 가능하다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public static class NavigationManager { private static Frame _mainContentFrame; public static void SetFrame(Frame frame) { _mainContentFrame = frame; } public static void Navigate(UserControl page) { _mainContentFrame.Navigate(page); } } |
Xaml
1 2 3 | <Grid x:Name="xMainWindowPanel"> <Frame x:Name="xMainFrame" NavigationUIVisibility="Hidden" /> </Grid> |
사용법
1 2 3 4 5 | private void MainWindow_Loaded(object sender, RoutedEventArgs e) { NavigationManager.SetFrame(xMainFrame); xMainFrame.Navigate(new LoginPage()); } |
추가...
naviagte를 하게 되면 이전 페이지가 필요 있으면 메모리에 남게 되므로 메모리 관리에 문제가 있을수 있다.
public static void Navigate(UserControl page)
{
_mainContentFrame.Navigate(page);
while (_mainContentFrame.CanGoBack == true)
{
_mainContentFrame.RemoveBackEntry();
}
}
RemoveBackEntry()로 지워주자
'wpf' 카테고리의 다른 글
non-ASCII를 없애보자. (0) | 2017.07.21 |
---|---|
Base 모델 클래스에 있는 데이터를 상속 클래스에 COPY 하기 (0) | 2017.07.21 |
listbox에서 오른쪽 정렬하고 싶을때 (0) | 2017.07.18 |
MVVM Button Click Command 사용법 (0) | 2017.07.17 |
MVVM을 쓰면서... (3) | 2016.10.24 |