/// <summary> /// Shows the side panel corresponding to the given display mode. /// </summary> /// <param name="displayMode">The display mode.</param> /// <remarks>If the display mode is Hidden, then the side panel will (obviously) be hidden.</remarks> public void ToggleSidePanel(SidePanelDisplayMode displayMode) { TabItem selectedTab = null; switch(displayMode) { case SidePanelDisplayMode.DisplaySettings: { selectedTab = displaySettingsPanel; _restoreFocusTarget = showDisplaySettingsButton; break; } case SidePanelDisplayMode.Navigation: { selectedTab = navigationPanel; _restoreFocusTarget = showNavPanelButton; break; } case SidePanelDisplayMode.Search: { selectedTab = searchPanel; _restoreFocusTarget = showSearchPanelButton; break; } case SidePanelDisplayMode.Help: { selectedTab = helpPanel; _restoreFocusTarget = showHelpButton; break; } } if(selectedTab != null) { sidePanelContainer.SelectedItem = selectedTab; ShowSidePanel(); //Need to refresh surface's scale so it fits properly in ScrollViewer DisplaySurface.SetScale(_displayAttributes.VisualScale); if(displayMode == SidePanelDisplayMode.Navigation) { navigation.RefreshContentsScrollPosition(); } } else { //Switch the tabpanel to an empty panel before hiding //This unloads the controls meaning we don't need two sets of code to set focus //as controls will always be loaded and call Loaded events NoFocus.Focus(); //Stops some of the buggy speech reading and ensures a consistent state SelfVoicingSpeakText(this, new SpeechTextEventArgs(Speech.PanelClosedMessage)); HideSidePanel(); } DisplaySurface.SetFocus(); }
/// <summary> /// Constructor for the PanelDisplayModeEventArgs, this EventArgs will be used to pass /// a display mode. /// </summary> /// <param name="displayMode"></param> public PanelDisplayModeEventArgs(SidePanelDisplayMode displayMode) { PanelDisplayMode = displayMode; }