mirror of
https://github.com/Microsoft/calculator.git
synced 2025-08-22 14:13:30 -07:00
Add hot key support for the back button in title bar
This commit is contained in:
parent
a2b7dfa5a6
commit
ba5e70510f
3 changed files with 51 additions and 8 deletions
|
@ -578,7 +578,7 @@ namespace CalculatorApp
|
||||||
NarratorNotifier.Announce(announcement);
|
NarratorNotifier.Announce(announcement);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void TitleBarBackButtonClick(object sender, RoutedEventArgs e)
|
private void TitleBarBackButtonClick(object sender)
|
||||||
{
|
{
|
||||||
CloseSettingsPopup();
|
CloseSettingsPopup();
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
<VisualState x:Name="BackButtonVisible">
|
<VisualState x:Name="BackButtonVisible">
|
||||||
<VisualState.Setters>
|
<VisualState.Setters>
|
||||||
<Setter Target="BackButton.Visibility" Value="Visible"/>
|
<Setter Target="BackButton.Visibility" Value="Visible"/>
|
||||||
|
<Setter Target="BackButton.IsEnabled" Value="True"/>
|
||||||
<Setter Target="AppIcon.Margin" Value="0"/>
|
<Setter Target="AppIcon.Margin" Value="0"/>
|
||||||
</VisualState.Setters>
|
</VisualState.Setters>
|
||||||
</VisualState>
|
</VisualState>
|
||||||
|
@ -55,7 +56,12 @@
|
||||||
FontSize="12"
|
FontSize="12"
|
||||||
Click="BackButton_Click"
|
Click="BackButton_Click"
|
||||||
Content=""
|
Content=""
|
||||||
Visibility="Collapsed"/>
|
Visibility="Collapsed"
|
||||||
|
IsEnabled="False">
|
||||||
|
<Button.KeyboardAccelerators>
|
||||||
|
<KeyboardAccelerator Key="Left" Modifiers="Menu"/>
|
||||||
|
</Button.KeyboardAccelerators>
|
||||||
|
</Button>
|
||||||
|
|
||||||
<Grid x:Name="BackgroundElement"
|
<Grid x:Name="BackgroundElement"
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
|
|
|
@ -51,7 +51,9 @@ namespace CalculatorApp
|
||||||
}));
|
}));
|
||||||
|
|
||||||
public event Windows.UI.Xaml.RoutedEventHandler AlwaysOnTopClick;
|
public event Windows.UI.Xaml.RoutedEventHandler AlwaysOnTopClick;
|
||||||
public event Windows.UI.Xaml.RoutedEventHandler BackButtonClick;
|
|
||||||
|
public delegate void BackButtonClickEventHandler(object sender);
|
||||||
|
public event BackButtonClickEventHandler BackButtonClick;
|
||||||
|
|
||||||
private void OnLoaded(object sender, RoutedEventArgs e)
|
private void OnLoaded(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
@ -63,6 +65,11 @@ namespace CalculatorApp
|
||||||
m_accessibilitySettings.HighContrastChanged += OnHighContrastChanged;
|
m_accessibilitySettings.HighContrastChanged += OnHighContrastChanged;
|
||||||
Window.Current.Activated += OnWindowActivated;
|
Window.Current.Activated += OnWindowActivated;
|
||||||
|
|
||||||
|
// Register the system back requested event
|
||||||
|
SystemNavigationManager.GetForCurrentView().BackRequested += System_BackRequested;
|
||||||
|
// Register the mouse back button event
|
||||||
|
Window.Current.CoreWindow.PointerPressed += CoreWindow_PointerPressed;
|
||||||
|
|
||||||
// Register RequestedTheme changed callback to update title bar system button colors.
|
// Register RequestedTheme changed callback to update title bar system button colors.
|
||||||
m_rootFrameRequestedThemeCallbackToken =
|
m_rootFrameRequestedThemeCallbackToken =
|
||||||
Utils.ThemeHelper.RegisterAppThemeChangedCallback(RootFrame_RequestedThemeChanged);
|
Utils.ThemeHelper.RegisterAppThemeChangedCallback(RootFrame_RequestedThemeChanged);
|
||||||
|
@ -87,10 +94,34 @@ namespace CalculatorApp
|
||||||
m_uiSettings.ColorValuesChanged -= ColorValuesChanged;
|
m_uiSettings.ColorValuesChanged -= ColorValuesChanged;
|
||||||
m_accessibilitySettings.HighContrastChanged -= OnHighContrastChanged;
|
m_accessibilitySettings.HighContrastChanged -= OnHighContrastChanged;
|
||||||
Window.Current.Activated -= OnWindowActivated;
|
Window.Current.Activated -= OnWindowActivated;
|
||||||
|
|
||||||
|
SystemNavigationManager.GetForCurrentView().BackRequested -= System_BackRequested;
|
||||||
|
Window.Current.CoreWindow.PointerPressed -= CoreWindow_PointerPressed;
|
||||||
|
|
||||||
Utils.ThemeHelper.
|
Utils.ThemeHelper.
|
||||||
UnregisterAppThemeChangedCallback(m_rootFrameRequestedThemeCallbackToken);
|
UnregisterAppThemeChangedCallback(m_rootFrameRequestedThemeCallbackToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void CoreWindow_PointerPressed(CoreWindow sender, PointerEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.CurrentPoint.Properties.IsXButton1Pressed && BackButton.IsEnabled)
|
||||||
|
{
|
||||||
|
InvokeBackButton(sender);
|
||||||
|
|
||||||
|
e.Handled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void System_BackRequested(object sender, BackRequestedEventArgs e)
|
||||||
|
{
|
||||||
|
if (!e.Handled && BackButton.IsEnabled)
|
||||||
|
{
|
||||||
|
InvokeBackButton(sender) ;
|
||||||
|
|
||||||
|
e.Handled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void RootFrame_RequestedThemeChanged(DependencyObject sender, DependencyProperty dp)
|
private void RootFrame_RequestedThemeChanged(DependencyObject sender, DependencyProperty dp)
|
||||||
{
|
{
|
||||||
if(Frame.RequestedThemeProperty == dp)
|
if(Frame.RequestedThemeProperty == dp)
|
||||||
|
@ -211,6 +242,17 @@ namespace CalculatorApp
|
||||||
AlwaysOnTopClick?.Invoke(this, e);
|
AlwaysOnTopClick?.Invoke(this, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Called when BackButton invoked, for example, by clicking, access key and etc.
|
||||||
|
private void InvokeBackButton(object sender)
|
||||||
|
{
|
||||||
|
BackButtonClick?.Invoke(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BackButton_Click(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
InvokeBackButton(sender);
|
||||||
|
}
|
||||||
|
|
||||||
// Dependency properties for the color of the system title bar buttons
|
// Dependency properties for the color of the system title bar buttons
|
||||||
public Windows.UI.Xaml.Media.SolidColorBrush ButtonBackground
|
public Windows.UI.Xaml.Media.SolidColorBrush ButtonBackground
|
||||||
{
|
{
|
||||||
|
@ -294,10 +336,5 @@ namespace CalculatorApp
|
||||||
private Windows.UI.ViewManagement.UISettings m_uiSettings;
|
private Windows.UI.ViewManagement.UISettings m_uiSettings;
|
||||||
private Windows.UI.ViewManagement.AccessibilitySettings m_accessibilitySettings;
|
private Windows.UI.ViewManagement.AccessibilitySettings m_accessibilitySettings;
|
||||||
private Utils.ThemeHelper.ThemeChangedCallbackToken m_rootFrameRequestedThemeCallbackToken;
|
private Utils.ThemeHelper.ThemeChangedCallbackToken m_rootFrameRequestedThemeCallbackToken;
|
||||||
|
|
||||||
private void BackButton_Click(object sender, RoutedEventArgs e)
|
|
||||||
{
|
|
||||||
BackButtonClick?.Invoke(this, e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue