wpf
[WPF] NavagionManager
동동(이재동)
2017. 7. 17. 16:58
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()로 지워주자