/// <summary> /// Initializes a new instance of the AppShell. /// </summary> public AppShell() { InitializeComponent(); // Set the data context _viewModel = new AppShellViewModel(); DataContext = _viewModel; Loaded += (sender, args) => { Current = this; togglePaneButton.Focus(FocusState.Programmatic); // We need to update the initial selection because // OnNavigatingToPage happens before Items are loaded in // both navigation bars. UpdateSelectionState(_lastSourcePageType); }; rootSplitView.RegisterPropertyChangedCallback( SplitView.DisplayModeProperty, (s, a) => { // Ensure that we update the reported size of the TogglePaneButton when the SplitView's // DisplayMode changes. CheckTogglePaneButtonSizeChanged(); }); SystemNavigationManager.GetForCurrentView().BackRequested += SystemNavigationManager_BackRequested; var titleBar = ApplicationView.GetForCurrentView().TitleBar; titleBar.ButtonBackgroundColor = Colors.White; titleBar.ButtonHoverBackgroundColor = (Color)Application.Current.Resources["AppAccentLightColor"]; titleBar.ButtonPressedBackgroundColor = (Color)Application.Current.Resources["AppAccentColor"]; titleBar.ButtonForegroundColor = (Color)Application.Current.Resources["AppAccentForegroundColor"]; titleBar.ButtonHoverForegroundColor = (Color)Application.Current.Resources["AppAccentForegroundColor"]; }
/// <summary> /// Initializes a new instance of the AppShell. /// </summary> public AppShell() { InitializeComponent(); // Set the data context _viewModel = new AppShellViewModel(); DataContext = _viewModel; Loaded += (sender, args) => { Current = this; togglePaneButton.Focus(FocusState.Programmatic); // We need to update the initial selection because // OnNavigatingToPage happens before Items are loaded in // both navigation bars. UpdateSelectionState(); }; rootSplitView.RegisterPropertyChangedCallback( SplitView.DisplayModeProperty, (s, a) => { // Ensure that we update the reported size of the TogglePaneButton when the SplitView's // DisplayMode changes. CheckTogglePaneButtonSizeChanged(); }); SystemNavigationManager.GetForCurrentView().BackRequested += SystemNavigationManager_BackRequested; var titleBar = ApplicationView.GetForCurrentView().TitleBar; titleBar.ButtonBackgroundColor = Colors.White; titleBar.ButtonHoverBackgroundColor = (Color)Application.Current.Resources["AppAccentLightColor"]; titleBar.ButtonPressedBackgroundColor = (Color)Application.Current.Resources["AppAccentColor"]; titleBar.ButtonForegroundColor = (Color)Application.Current.Resources["AppAccentForegroundColor"]; titleBar.ButtonHoverForegroundColor = (Color)Application.Current.Resources["AppAccentForegroundColor"]; }
private void Current_TogglePaneButtonSizeChanged(AppShell sender, Rect e) { titleBar.Margin = new Thickness(e.Right, 0, 0, 0); }
/// <summary> /// Initialize the App launch. /// </summary> /// <returns>The AppShell of the app.</returns> private async Task<AppShell> Initialize() { var shell = Window.Current.Content as AppShell; // Do not repeat app initialization when the Window already has content, // just ensure that the window is active if (shell == null) { UnityBootstrapper.Init(); UnityBootstrapper.ConfigureRegistries(); await AppInitialization.DoInitializations(); // Create a AppShell to act as the navigation context and navigate to the first page shell = new AppShell(); // Set the default language shell.Language = ApplicationLanguages.Languages[0]; shell.AppFrame.NavigationFailed += OnNavigationFailed; } return shell; }