Merge branch 'microsoft:main' into add-kilowatthour

This commit is contained in:
Flippchen 2023-05-17 09:26:35 +02:00 committed by GitHub
commit 672e6927c0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
29 changed files with 888 additions and 536 deletions

View file

@ -8,7 +8,8 @@
xmlns:converters="using:CalculatorApp.Converters"
xmlns:local="using:CalculatorApp"
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
xmlns:primitives="using:Microsoft.UI.Xaml.Controls.Primitives">
xmlns:primitives="using:Microsoft.UI.Xaml.Controls.Primitives"
xmlns:utils="using:CalculatorApp.Utils">
<Application.Resources>
<ResourceDictionary>
@ -790,7 +791,6 @@
TextWrapping="NoWrap"/>
</ScrollViewer>
<HyperlinkButton x:Name="ScrollLeft"
x:Uid="CalculationResultScrollLeft"
Grid.Column="0"
Width="20"
MinWidth="20"
@ -803,6 +803,7 @@
Foreground="{ThemeResource SystemControlForegroundAccentBrush}"
BorderThickness="0"
AutomationProperties.AutomationId="CalculationResultScrollLeft"
AutomationProperties.Name="{utils:ResourceString Name=CalculationResultScrollLeft/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Visibility="Collapsed">
<FontIcon x:Name="ScrollLeftText"
FontFamily="{ThemeResource CalculatorFontFamily}"
@ -810,7 +811,6 @@
Glyph="&#xE96F;"/>
</HyperlinkButton>
<HyperlinkButton x:Name="ScrollRight"
x:Uid="CalculationResultScrollRight"
Grid.Column="2"
Width="20"
MinWidth="20"
@ -823,6 +823,7 @@
Foreground="{ThemeResource SystemControlForegroundAccentBrush}"
BorderThickness="0"
AutomationProperties.AutomationId="CalculationResultScrollRight"
AutomationProperties.Name="{utils:ResourceString Name=CalculationResultScrollRight/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Visibility="Collapsed">
<FontIcon x:Name="ScrollRightText"
FontFamily="{ThemeResource CalculatorFontFamily}"

View file

@ -165,6 +165,8 @@
<Compile Include="Converters\RadixToStringConverter.cs" />
<Compile Include="Converters\VisibilityNegationConverter.cs" />
<Compile Include="Selectors\NavViewMenuItemTemplateSelector.cs" />
<Compile Include="Utils\ResourceVirtualKey.cs" />
<Compile Include="Utils\ResourceString.cs" />
<Compile Include="Utils\ThemeHelper.cs" />
<Compile Include="Views\GraphingCalculator\EquationStylePanelControl.xaml.cs">
<DependentUpon>EquationStylePanelControl.xaml</DependentUpon>

View file

@ -0,0 +1,19 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using CalculatorApp.ViewModel.Common;
using Windows.UI.Xaml.Markup;
namespace CalculatorApp.Utils
{
[MarkupExtensionReturnType(ReturnType = typeof(string))]
public sealed class ResourceString : MarkupExtension
{
public string Name { get; set; }
protected override object ProvideValue()
{
return AppResourceProvider.GetInstance().GetResourceString(this.Name);
}
}
}

View file

@ -0,0 +1,21 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using CalculatorApp.ViewModel.Common;
using System;
using Windows.UI.Xaml.Markup;
namespace CalculatorApp.Utils
{
[MarkupExtensionReturnType(ReturnType = typeof(MyVirtualKey))]
public sealed class ResourceVirtualKey : MarkupExtension
{
public string Name { get; set; }
protected override object ProvideValue()
{
var resourceString = AppResourceProvider.GetInstance().GetResourceString(this.Name);
return Enum.Parse(typeof(MyVirtualKey), resourceString);
}
}
}

View file

@ -2,7 +2,7 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:automation="using:CalculatorApp.ViewModel.Common.Automation"
xmlns:common="using:CalculatorApp.ViewModel.Common"
xmlns:common="using:CalculatorApp.Common"
xmlns:contract7Present="http://schemas.microsoft.com/winfx/2006/xaml/presentation?IsApiContractPresent(Windows.Foundation.UniversalApiContract,7)"
xmlns:contract8NotPresent="http://schemas.microsoft.com/winfx/2006/xaml/presentation?IsApiContractNotPresent(Windows.Foundation.UniversalApiContract,8)"
xmlns:contract8Present="http://schemas.microsoft.com/winfx/2006/xaml/presentation?IsApiContractPresent(Windows.Foundation.UniversalApiContract,8)"
@ -11,25 +11,27 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="using:CalculatorApp"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:utils="using:CalculatorApp.Utils"
xmlns:vmcommon="using:CalculatorApp.ViewModel.Common"
Loaded="OnLoaded"
mc:Ignorable="d">
<UserControl.Resources>
<!-- DataTemplates -->
<DataTemplate x:Key="Operand" x:DataType="common:DisplayExpressionToken">
<DataTemplate x:Key="Operand" x:DataType="vmcommon:DisplayExpressionToken">
<TextBlock Margin="2,0,0,0"
Foreground="{ThemeResource SystemControlPageTextBaseMediumBrush}"
Text="{x:Bind Token, Mode=OneWay}"/>
</DataTemplate>
<DataTemplate x:Key="Operator" x:DataType="common:DisplayExpressionToken">
<DataTemplate x:Key="Operator" x:DataType="vmcommon:DisplayExpressionToken">
<TextBlock Margin="2,0,0,0"
Foreground="{ThemeResource SystemControlPageTextBaseMediumBrush}"
Text="{x:Bind Token, Mode=OneWay}"/>
</DataTemplate>
<DataTemplate x:Key="Separator" x:DataType="common:DisplayExpressionToken">
<DataTemplate x:Key="Separator" x:DataType="vmcommon:DisplayExpressionToken">
<TextBlock x:Name="MainText" Text="{x:Bind Token, Mode=OneWay}"/>
</DataTemplate>
@ -73,19 +75,19 @@
</Grid>
</ScrollViewer>
<Button x:Name="ScrollLeft"
x:Uid="scrollLeft"
Grid.Column="0"
Margin="-4,3,-4,0"
Style="{StaticResource ScrollButtonStyle}">
Style="{StaticResource ScrollButtonStyle}"
AutomationProperties.Name="{utils:ResourceString Name=scrollLeft/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<FontIcon FontFamily="{ThemeResource CalculatorFontFamily}"
FontSize="12"
Glyph="&#xE96F;"/>
</Button>
<Button x:Name="ScrollRight"
x:Uid="scrollRight"
Grid.Column="2"
Margin="-4,3,-4,0"
Style="{StaticResource ScrollButtonStyle}">
Style="{StaticResource ScrollButtonStyle}"
AutomationProperties.Name="{utils:ResourceString Name=scrollRight/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<FontIcon FontFamily="{ThemeResource CalculatorFontFamily}"
FontSize="12"
Glyph="&#xE970;"/>
@ -179,25 +181,25 @@
</ScrollViewer>
<Button x:Name="ScrollLeft"
x:Uid="scrollLeft"
Grid.Column="0"
Width="{TemplateBinding ScrollButtonsWidth}"
Margin="0,3,0,0"
VerticalAlignment="Stretch"
Style="{StaticResource AlwaysOnTopScrollButtonStyleS}"
Background="Transparent">
Background="Transparent"
AutomationProperties.Name="{utils:ResourceString Name=scrollLeft/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<FontIcon FontFamily="{ThemeResource CalculatorFontFamily}"
FontSize="{TemplateBinding ScrollButtonsFontSize}"
Glyph="&#xE96F;"/>
</Button>
<Button x:Name="ScrollRight"
x:Uid="scrollRight"
Grid.Column="2"
Width="{TemplateBinding ScrollButtonsWidth}"
Margin="0,3,0,0"
VerticalAlignment="Stretch"
Style="{StaticResource AlwaysOnTopScrollButtonStyleS}"
Background="Transparent">
Background="Transparent"
AutomationProperties.Name="{utils:ResourceString Name=scrollRight/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<FontIcon FontFamily="{ThemeResource CalculatorFontFamily}"
FontSize="{TemplateBinding ScrollButtonsFontSize}"
Glyph="&#xE970;"/>
@ -676,14 +678,16 @@
x:Load="False"/>
<Button x:Name="HistoryButton"
x:Uid="HistoryButton"
Grid.Row="0"
Style="{StaticResource HistoryButtonStyle}"
common:KeyboardShortcutManager.VirtualKeyControlChord="{utils:ResourceVirtualKey Name=HistoryButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlChord}"
AccessKey="{utils:ResourceString Name=HistoryButton/AccessKey}"
AutomationProperties.AutomationId="HistoryButton"
Command="{x:Bind HistoryButtonPressed, Mode=OneTime}"
Content="&#xe81c;"
ExitDisplayModeOnAccessKeyInvoked="False"
TabIndex="2"
ToolTipService.ToolTip="{utils:ResourceString Name=HistoryButton/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}"
Visibility="{x:Bind local:Calculator.ShouldDisplayHistoryButton(Model.IsAlwaysOnTop, Model.IsProgrammer, DockPanel.Visibility), Mode=OneWay}"
IsEnabled="{x:Bind Model.IsAlwaysOnTop, Converter={StaticResource BooleanNegationConverter}, Mode=OneWay}">
<FlyoutBase.AttachedFlyout>
@ -707,10 +711,10 @@
<!-- Memory panel controls -->
<Grid x:Name="MemoryPanel"
x:Uid="MemoryPanel"
Grid.Row="4"
Margin="3,0,3,0"
AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{utils:ResourceString Name=MemoryPanel/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Visibility="{x:Bind Model.IsAlwaysOnTop, Converter={StaticResource BooleanToVisibilityNegationConverter}, Mode=OneWay}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" MaxWidth="80"/>
@ -727,67 +731,78 @@
</Grid.ColumnDefinitions>
<controls:CalculatorButton x:Name="ClearMemoryButton"
x:Uid="ClearMemoryButton"
Style="{StaticResource CaptionButtonStyle}"
common:KeyboardShortcutManager.VirtualKeyControlChord="{utils:ResourceVirtualKey Name=ClearMemoryButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlChord}"
AutomationProperties.AutomationId="ClearMemoryButton"
AutomationProperties.Name="{utils:ResourceString Name=ClearMemoryButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Command="{x:Bind Model.ClearMemoryCommand}"
Content="&#xF754;"
TabIndex="10"
ToolTipService.ToolTip="{utils:ResourceString Name=ClearMemoryButton/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}"
Visibility="{Binding IsProgrammer, Converter={StaticResource BooleanToVisibilityNegationConverter}}"/>
<controls:CalculatorButton x:Name="MemRecall"
x:Uid="MemRecall"
Grid.Column="1"
Style="{StaticResource CaptionButtonStyle}"
common:KeyboardShortcutManager.VirtualKeyControlChord="{utils:ResourceVirtualKey Name=MemRecall/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlChord}"
AutomationProperties.AutomationId="MemRecall"
AutomationProperties.Name="{utils:ResourceString Name=MemRecall/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Command="{x:Bind Model.MemoryItemPressed}"
CommandParameter="{StaticResource Zero}"
Content="&#xF755;"
TabIndex="11"
ToolTipService.ToolTip="{utils:ResourceString Name=MemRecall/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}"
Visibility="{Binding IsProgrammer, Converter={StaticResource BooleanToVisibilityNegationConverter}}"/>
<controls:CalculatorButton x:Name="MemPlus"
x:Uid="MemPlus"
Grid.Column="2"
Style="{StaticResource CaptionButtonStyle}"
common:KeyboardShortcutManager.VirtualKeyControlChord="{utils:ResourceVirtualKey Name=MemPlus/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlChord}"
AutomationProperties.AutomationId="MemPlus"
AutomationProperties.Name="{utils:ResourceString Name=MemPlus/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Command="{x:Bind Model.MemoryAdd}"
CommandParameter="{StaticResource Zero}"
Content="&#xF757;"
TabIndex="12"
ToolTipService.ToolTip="{utils:ResourceString Name=MemPlus/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}"
Visibility="{Binding IsProgrammer, Converter={StaticResource BooleanToVisibilityNegationConverter}}"/>
<controls:CalculatorButton x:Name="MemMinus"
x:Uid="MemMinus"
Grid.Column="3"
Style="{StaticResource CaptionButtonStyle}"
common:KeyboardShortcutManager.VirtualKeyControlChord="{utils:ResourceVirtualKey Name=MemMinus/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlChord}"
AutomationProperties.AutomationId="MemMinus"
AutomationProperties.Name="{utils:ResourceString Name=MemMinus/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Command="{x:Bind Model.MemorySubtract}"
CommandParameter="{StaticResource Zero}"
Content="&#xF758;"
TabIndex="13"
ToolTipService.ToolTip="{utils:ResourceString Name=MemMinus/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}"
Visibility="{Binding IsProgrammer, Converter={StaticResource BooleanToVisibilityNegationConverter}}"/>
<controls:CalculatorButton x:Name="MemButton"
x:Uid="memButton"
Grid.Column="4"
Style="{StaticResource CaptionButtonStyle}"
common:KeyboardShortcutManager.VirtualKeyControlChord="{utils:ResourceVirtualKey Name=memButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlChord}"
AutomationProperties.AutomationId="memButton"
AutomationProperties.Name="{utils:ResourceString Name=memButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Memory"
Content="&#xF756;"
TabIndex="14"/>
TabIndex="14"
ToolTipService.ToolTip="{utils:ResourceString Name=memButton/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}"/>
<Button x:Name="MemoryButton"
x:Uid="MemoryButton"
Grid.Column="6"
MinWidth="15.5"
MinHeight="8.402"
Style="{StaticResource CaptionButtonStyle}"
AccessKey="{utils:ResourceString Name=MemoryButton/AccessKey}"
AutomationProperties.AutomationId="MemoryButton"
Click="ToggleMemoryFlyout"
Content="&#xE61D;"
ExitDisplayModeOnAccessKeyInvoked="False"
TabIndex="15"
ToolTipService.ToolTip="{utils:ResourceString Name=MemoryButton/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}"
IsEnabled="{x:Bind Model.IsMemoryEmpty, Converter={StaticResource BooleanNegationConverter}, Mode=OneWay}">
<FlyoutBase.AttachedFlyout>
<Flyout x:Name="MemoryFlyout"
x:Uid="MemoryFlyout"
AutomationProperties.AutomationId="MemoryFlyout"
AutomationProperties.Name="{utils:ResourceString Name=MemoryFlyout/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Closed="OnMemoryFlyoutClosed"
Closing="OnMemoryFlyoutClosing"
FlyoutPresenterStyle="{StaticResource MemoryFlyoutStyle}"
@ -811,10 +826,10 @@
<!-- Docked Pivot panel for history/memory -->
<Border x:Name="DockPanel"
x:Uid="DockPanel"
Grid.Row="1"
Grid.Column="1"
AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{utils:ResourceString Name=DockPanel/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Visibility="Collapsed">
<Border.Resources>
<!--
@ -1329,20 +1344,24 @@
</Style>
</Pivot.Resources>
<PivotItem x:Name="HistoryPivotItem"
x:Uid="HistoryPivotItem"
Margin="0,10,0,0"
AutomationProperties.AutomationId="HistoryLabel">
AutomationProperties.AutomationId="HistoryLabel"
AutomationProperties.Name="{utils:ResourceString Name=HistoryPivotItem/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<PivotItem.Header>
<TextBlock x:Uid="HistoryLabel" AccessKeyInvoked="OnHistoryAccessKeyInvoked"/>
<TextBlock AccessKey="{utils:ResourceString Name=HistoryLabel/AccessKey}"
AccessKeyInvoked="OnHistoryAccessKeyInvoked"
Text="{utils:ResourceString Name=HistoryLabel/Text}"/>
</PivotItem.Header>
<Border x:Name="DockHistoryHolder"/>
</PivotItem>
<PivotItem x:Name="MemoryPivotItem"
x:Uid="MemoryPivotItem"
Margin="0,10,0,0"
AutomationProperties.AutomationId="MemoryLabel">
AutomationProperties.AutomationId="MemoryLabel"
AutomationProperties.Name="{utils:ResourceString Name=MemoryPivotItem/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<PivotItem.Header>
<TextBlock x:Uid="MemoryLabel" AccessKeyInvoked="OnMemoryAccessKeyInvoked"/>
<TextBlock AccessKey="{utils:ResourceString Name=MemoryLabel/AccessKey}"
AccessKeyInvoked="OnMemoryAccessKeyInvoked"
Text="{utils:ResourceString Name=MemoryLabel/Text}"/>
</PivotItem.Header>
<Border x:Name="DockMemoryHolder"/>
</PivotItem>

View file

@ -6,6 +6,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="using:CalculatorApp"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:utils="using:CalculatorApp.Utils"
x:Name="BitFlip"
d:DesignHeight="395"
d:DesignWidth="315"
@ -98,7 +99,6 @@
AutomationProperties.AccessibilityView="Raw"
Content="{Binding Text, ElementName=BinaryZero, Mode=OneWay}"/>
<TextBlock x:Name="BinaryZero"
x:Uid="BinaryZero"
Margin="{TemplateBinding Padding}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
@ -106,9 +106,9 @@
FontSize="{TemplateBinding FontSize}"
FontWeight="SemiBold"
AutomationProperties.AccessibilityView="Raw"
IsTextScaleFactorEnabled="False"/>
IsTextScaleFactorEnabled="False"
Text="{utils:ResourceString Name=BinaryZero/Text}"/>
<TextBlock x:Name="BinaryOne"
x:Uid="BinaryOne"
Margin="{TemplateBinding Padding}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
@ -117,6 +117,7 @@
FontWeight="SemiBold"
AutomationProperties.AccessibilityView="Raw"
IsTextScaleFactorEnabled="False"
Text="{utils:ResourceString Name=BinaryOne/Text}"
Visibility="Collapsed"/>
</Grid>
</Grid>
@ -137,9 +138,9 @@
</Style>
</UserControl.Resources>
<Grid x:Name="BitFlipPanel"
x:Uid="BitFlipPanel"
Margin="0,1,0,1"
AutomationProperties.HeadingLevel="Level1">
AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{utils:ResourceString Name=BitFlipPanel/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="1*"/>

View file

@ -7,13 +7,14 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="using:CalculatorApp"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:utils="using:CalculatorApp.Utils"
Margin="3,0,0,0"
d:DesignHeight="300"
d:DesignWidth="400"
mc:Ignorable="d">
<UserControl.Resources>
<converters:BooleanNegationConverter x:Key="BooleanNegationConverter"/>
<converters:BooleanNegationConverter x:Key="BooleanNegationConverter"/>
</UserControl.Resources>
<Grid x:Name="ProgrammerDisplay">
@ -51,64 +52,70 @@
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid x:Uid="InputModeSelectionGroup"
Grid.Column="0"
AutomationProperties.HeadingLevel="Level1">
<Grid Grid.Column="0"
AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{utils:ResourceString Name=InputModeSelectionGroup/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" MaxWidth="80"/>
<ColumnDefinition Width="1*" MaxWidth="80"/>
</Grid.ColumnDefinitions>
<RadioButton x:Name="FullKeypad"
x:Uid="fullKeypad"
Style="{StaticResource ConditionalProgKeypadRadioButtonStyle}"
AutomationProperties.AutomationId="fullKeypad"
AutomationProperties.Name="{utils:ResourceString Name=fullKeypad/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Content="&#xe75f;"
IsChecked="{x:Bind Model.IsBitFlipChecked, Converter={StaticResource BooleanNegationConverter}, Mode=TwoWay}"/>
IsChecked="{x:Bind Model.IsBitFlipChecked, Converter={StaticResource BooleanNegationConverter}, Mode=TwoWay}"
ToolTipService.ToolTip="{utils:ResourceString Name=fullKeypad/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}"/>
<RadioButton x:Name="BitFlip"
x:Uid="bitFlip"
Grid.Column="1"
Style="{StaticResource ConditionalProgKeypadRadioButtonStyle}"
AutomationProperties.AutomationId="bitFlip"
AutomationProperties.Name="{utils:ResourceString Name=bitFlip/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Content="&#xf7d0;"
IsChecked="{x:Bind Model.IsBitFlipChecked, Mode=TwoWay}"/>
IsChecked="{x:Bind Model.IsBitFlipChecked, Mode=TwoWay}"
ToolTipService.ToolTip="{utils:ResourceString Name=bitFlip/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}"/>
</Grid>
<Button x:Name="QwordButton"
x:Uid="qwordButton"
Grid.Column="0"
Grid.ColumnSpan="7"
Style="{StaticResource ProgWordSizeButtonStyle}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=qwordButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="qwordButton"
AutomationProperties.Name="{utils:ResourceString Name=qwordButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Command="{x:Bind BitLengthButtonPressed, Mode=OneTime}"
CommandParameter="0"
Content="QWORD"/>
<Button x:Name="DwordButton"
x:Uid="dwordButton"
Grid.Column="0"
Grid.ColumnSpan="7"
Style="{StaticResource ProgWordSizeButtonStyle}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=dwordButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="dwordButton"
AutomationProperties.Name="{utils:ResourceString Name=dwordButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Command="{x:Bind BitLengthButtonPressed, Mode=OneTime}"
CommandParameter="1"
Content="DWORD"
Visibility="Collapsed"/>
<Button x:Name="WordButton"
x:Uid="wordButton"
Grid.Column="0"
Grid.ColumnSpan="7"
Style="{StaticResource ProgWordSizeButtonStyle}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=wordButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="wordButton"
AutomationProperties.Name="{utils:ResourceString Name=wordButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Command="{x:Bind BitLengthButtonPressed, Mode=OneTime}"
CommandParameter="2"
Content="WORD"
Visibility="Collapsed"/>
<Button x:Name="ByteButton"
x:Uid="byteButton"
Grid.Column="0"
Grid.ColumnSpan="7"
Style="{StaticResource ProgWordSizeButtonStyle}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=byteButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="byteButton"
AutomationProperties.Name="{utils:ResourceString Name=byteButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Command="{x:Bind BitLengthButtonPressed, Mode=OneTime}"
CommandParameter="3"
Content="BYTE"

View file

@ -9,6 +9,7 @@
xmlns:designdata="using:CalculatorApp.DesignData"
xmlns:local="using:CalculatorApp"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:utils="using:CalculatorApp.Utils"
x:Name="ControlRoot"
d:DesignHeight="400"
d:DesignWidth="315"
@ -172,10 +173,10 @@
</MenuFlyout>
</UserControl.Resources>
<Grid x:Name="ProgrammerOperators"
x:Uid="RadixGroup"
MaxHeight="244"
Margin="4,0"
AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{utils:ResourceString Name=RadixGroup/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
FlowDirection="LeftToRight">
<Grid.RowDefinitions>
<RowDefinition Height="1*" MinHeight="0"/>
@ -204,48 +205,52 @@
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<controls:RadixButton x:Name="HexButton"
x:Uid="hexButton"
HorizontalAlignment="Stretch"
Style="{ThemeResource ConditionalProgModeRadioButtonStyle}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=hexButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="hexButton"
AutomationProperties.Name="{x:Bind Model.HexDisplayValue_AutomationName, Mode=OneWay}"
Checked="HexButtonChecked"
Content="{x:Bind Model.HexDisplayValue, Mode=OneWay}"
ContextFlyout="{StaticResource ProgrammerOperatorsContextMenu}"
GroupName="BaseConversion"/>
GroupName="BaseConversion"
Tag="{utils:ResourceString Name=hexButton/Tag}"/>
<controls:RadixButton x:Name="DecimalButton"
x:Uid="decimalButton"
Grid.Row="1"
HorizontalAlignment="Stretch"
Style="{ThemeResource ConditionalProgModeRadioButtonStyle}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=decimalButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="decimalButton"
AutomationProperties.Name="{x:Bind Model.DecDisplayValue_AutomationName, Mode=OneWay}"
Checked="DecButtonChecked"
Content="{x:Bind Model.DecimalDisplayValue, Mode=OneWay}"
ContextFlyout="{StaticResource ProgrammerOperatorsContextMenu}"
GroupName="BaseConversion"
IsChecked="true"/>
IsChecked="true"
Tag="{utils:ResourceString Name=decimalButton/Tag}"/>
<controls:RadixButton x:Name="OctButton"
x:Uid="octButton"
Grid.Row="2"
HorizontalAlignment="Stretch"
Style="{ThemeResource ConditionalProgModeRadioButtonStyle}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=octButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="octolButton"
AutomationProperties.Name="{x:Bind Model.OctDisplayValue_AutomationName, Mode=OneWay}"
Checked="OctButtonChecked"
Content="{x:Bind Model.OctalDisplayValue, Mode=OneWay}"
ContextFlyout="{StaticResource ProgrammerOperatorsContextMenu}"
GroupName="BaseConversion"/>
GroupName="BaseConversion"
Tag="{utils:ResourceString Name=octButton/Tag}"/>
<controls:RadixButton x:Name="BinaryButton"
x:Uid="binaryButton"
Grid.Row="3"
HorizontalAlignment="Stretch"
Style="{ThemeResource ConditionalProgModeRadioButtonStyle}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=binaryButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="binaryButton"
AutomationProperties.Name="{x:Bind Model.BinDisplayValue_AutomationName, Mode=OneWay}"
Checked="BinButtonChecked"
Content="{x:Bind Model.BinaryDisplayValue, Mode=OneWay}"
ContextFlyout="{StaticResource ProgrammerOperatorsContextMenu}"
GroupName="BaseConversion"/>
GroupName="BaseConversion"
Tag="{utils:ResourceString Name=binaryButton/Tag}"/>
</Grid>
</UserControl>

View file

@ -10,6 +10,7 @@
xmlns:local="using:CalculatorApp"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:triggers="using:CalculatorApp.Views.StateTriggers"
xmlns:utils="using:CalculatorApp.Utils"
x:Name="ControlRoot"
d:DesignHeight="395"
d:DesignWidth="315"
@ -227,16 +228,17 @@
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<controls:OperatorPanelListView x:Uid="ProgrammerOperatorPanel"
Grid.ColumnSpan="6"
<controls:OperatorPanelListView Grid.ColumnSpan="6"
Background="{ThemeResource AppOperatorPanelBackground}"
AutomationProperties.HeadingLevel="Level1">
AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{utils:ResourceString Name=ProgrammerOperatorPanel/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<controls:OperatorPanelButton x:Name="BitwiseButton"
x:Uid="bitwiseButton"
Style="{StaticResource OperatorPanelButtonStyle}"
AutomationProperties.AutomationId="bitwiseButton"
Glyph="&#xF895;">
AutomationProperties.Name="{utils:ResourceString Name=bitwiseButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Glyph="&#xF895;"
Text="{utils:ResourceString Name=bitwiseButton/Text}">
<controls:OperatorPanelButton.FlyoutMenu>
<Flyout x:Name="BitwiseFlyout"
Windows10version1803:Placement="Bottom"
@ -262,10 +264,12 @@
causing the shortcut keys to be used when the control would normally be disabled.
-->
<controls:CalculatorButton x:Name="AndButton"
x:Uid="andButton"
Style="{StaticResource OperatorButtonStyle}"
FontSize="12"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=andButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AuditoryFeedback="{utils:ResourceString Name=andButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="andButton"
AutomationProperties.Name="{utils:ResourceString Name=andButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="And"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -273,11 +277,13 @@
IsEnabled="{x:Bind BitwiseButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="OrButton"
x:Uid="orButton"
Grid.Column="1"
Style="{StaticResource OperatorButtonStyle}"
FontSize="12"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=orButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AuditoryFeedback="{utils:ResourceString Name=orButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="orButton"
AutomationProperties.Name="{utils:ResourceString Name=orButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Or"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -285,11 +291,12 @@
IsEnabled="{x:Bind BitwiseButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="NotButton"
x:Uid="notButton"
Grid.Column="2"
Style="{StaticResource OperatorButtonStyle}"
FontSize="12"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=notButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="notButton"
AutomationProperties.Name="{utils:ResourceString Name=notButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Not"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -297,11 +304,13 @@
IsEnabled="{x:Bind BitwiseButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="NandButton"
x:Uid="nandButton"
Grid.Row="1"
Style="{StaticResource OperatorButtonStyle}"
FontSize="12"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=nandButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AuditoryFeedback="{utils:ResourceString Name=nandButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="nandButton"
AutomationProperties.Name="{utils:ResourceString Name=nandButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Nand"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -309,12 +318,14 @@
IsEnabled="{x:Bind BitwiseButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="NorButton"
x:Uid="norButton"
Grid.Row="1"
Grid.Column="1"
Style="{StaticResource OperatorButtonStyle}"
FontSize="12"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=norButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AuditoryFeedback="{utils:ResourceString Name=norButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="norButton"
AutomationProperties.Name="{utils:ResourceString Name=norButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Nor"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -322,12 +333,14 @@
IsEnabled="{x:Bind BitwiseButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="XorButton"
x:Uid="xorButton"
Grid.Row="1"
Grid.Column="2"
Style="{StaticResource OperatorButtonStyle}"
FontSize="12"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=xorButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AuditoryFeedback="{utils:ResourceString Name=xorButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="xorButton"
AutomationProperties.Name="{utils:ResourceString Name=xorButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Xor"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -338,10 +351,11 @@
</controls:OperatorPanelButton.FlyoutMenu>
</controls:OperatorPanelButton>
<controls:OperatorPanelButton x:Name="BitShiftButton"
x:Uid="bitShiftButton"
Style="{StaticResource OperatorPanelButtonStyle}"
AutomationProperties.AutomationId="bitShiftButton"
Glyph="&#xE301;">
AutomationProperties.Name="{utils:ResourceString Name=bitShiftButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Glyph="&#xE301;"
Text="{utils:ResourceString Name=bitShiftButton/Text}">
<controls:OperatorPanelButton.FlyoutMenu>
<Flyout x:Name="BitShiftFlyout"
Windows10version1809:AreOpenCloseAnimationsEnabled="False"
@ -350,91 +364,99 @@
Placement="Bottom">
<StackPanel MaxWidth="192" Padding="12">
<RadioButton x:Name="ArithmeticShiftButton"
x:Uid="arithmeticShiftButton"
AutomationProperties.AutomationId="arithmeticShiftButton"
Checked="BitshiftFlyout_Checked"/>
Checked="BitshiftFlyout_Checked"
Content="{utils:ResourceString Name=arithmeticShiftButton/Content}"/>
<RadioButton x:Name="LogicalShiftButton"
x:Uid="logicalShiftButton"
AutomationProperties.AutomationId="logicalShiftButton"
Checked="BitshiftFlyout_Checked"/>
Checked="BitshiftFlyout_Checked"
Content="{utils:ResourceString Name=logicalShiftButton/Content}"/>
<RadioButton x:Name="RotateCircularButton"
x:Uid="rotateCircularButton"
AutomationProperties.AutomationId="rotateCircularButton"
Checked="BitshiftFlyout_Checked"/>
Checked="BitshiftFlyout_Checked"
Content="{utils:ResourceString Name=rotateCircularButton/Content}"/>
<RadioButton x:Name="RotateCarryShiftButton"
x:Uid="rotateCarryShiftButton"
AutomationProperties.AutomationId="rotateCarryShiftButton"
Checked="BitshiftFlyout_Checked"/>
Checked="BitshiftFlyout_Checked"
Content="{utils:ResourceString Name=rotateCarryShiftButton/Content}"/>
</StackPanel>
</Flyout>
</controls:OperatorPanelButton.FlyoutMenu>
</controls:OperatorPanelButton>
</controls:OperatorPanelListView>
<Grid x:Uid="ProgrammerOperators"
Grid.Row="1"
<Grid Grid.Row="1"
Grid.Column="2"
Grid.ColumnSpan="2"
AutomationProperties.HeadingLevel="Level1">
AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{utils:ResourceString Name=ProgrammerOperators/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<controls:CalculatorButton x:Name="RolButton"
x:Uid="rolButton"
Grid.Column="0"
Style="{StaticResource SymbolOperatorButtonStyle}"
FontSize="12"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=rolButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
x:DeferLoadStrategy="Lazy"
AutomationProperties.AutomationId="rolButton"
AutomationProperties.Name="{utils:ResourceString Name=rolButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Rol"
Content="&#xF88E;"
Visibility="Collapsed"/>
<controls:CalculatorButton x:Name="RorButton"
x:Uid="rorButton"
Grid.Column="1"
Style="{StaticResource SymbolOperatorButtonStyle}"
FontSize="12"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=rorButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
x:DeferLoadStrategy="Lazy"
AutomationProperties.AutomationId="rorButton"
AutomationProperties.Name="{utils:ResourceString Name=rorButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Ror"
Content="&#xF88F;"
Visibility="Collapsed"/>
<controls:CalculatorButton x:Name="RolCarryButton"
x:Uid="rolCarryButton"
Style="{StaticResource SymbolOperatorButtonStyle}"
FontSize="12"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=rolCarryButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
x:DeferLoadStrategy="Lazy"
AutomationProperties.AutomationId="rolButton"
AutomationProperties.Name="{utils:ResourceString Name=rolCarryButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="RolC"
Content="&#xF88E;"
Visibility="Collapsed"/>
<controls:CalculatorButton x:Name="RorCarryButton"
x:Uid="rorCarryButton"
Grid.Column="1"
Style="{StaticResource SymbolOperatorButtonStyle}"
FontSize="12"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=rorCarryButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
x:DeferLoadStrategy="Lazy"
AutomationProperties.AutomationId="rorCarryButton"
AutomationProperties.Name="{utils:ResourceString Name=rorCarryButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="RorC"
Content="&#xF88F;"
Visibility="Collapsed"/>
<controls:CalculatorButton x:Name="LshButton"
x:Uid="lshButton"
Style="{StaticResource SymbolOperatorButtonStyle}"
FontSize="12"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=lshButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AuditoryFeedback="{utils:ResourceString Name=lshButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="lshButton"
AutomationProperties.Name="{utils:ResourceString Name=lshButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Lsh"
Content="&#xF88E;"/>
<controls:CalculatorButton x:Name="RshButton"
x:Uid="rshButton"
Grid.Column="1"
Style="{StaticResource SymbolOperatorButtonStyle}"
FontSize="12"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=rshButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AuditoryFeedback="{utils:ResourceString Name=rshButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="rshButton"
AutomationProperties.Name="{utils:ResourceString Name=rshButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Rsh"
Content="&#xF88F;"/>
@ -448,93 +470,102 @@
Content="&#xF88E;"
Visibility="Collapsed"/>
<controls:CalculatorButton x:Name="RshLogicalButton"
x:Uid="rshLogicalButton"
Grid.Column="1"
Style="{StaticResource SymbolOperatorButtonStyle}"
FontSize="12"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=rshLogicalButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
x:DeferLoadStrategy="Lazy"
AuditoryFeedback="{utils:ResourceString Name=rshLogicalButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="rshLogicalButton"
AutomationProperties.Name="{utils:ResourceString Name=rshLogicalButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="RshL"
Content="&#xF88F;"
Visibility="Collapsed"/>
</Grid>
<Grid x:Uid="DisplayControls"
Grid.Row="1"
<Grid Grid.Row="1"
Grid.Column="4"
Grid.ColumnSpan="2"
AutomationProperties.HeadingLevel="Level1">
AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{utils:ResourceString Name=DisplayControls/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<controls:CalculatorButton x:Name="ClearButton"
x:Uid="clearButton"
Style="{StaticResource OperatorButtonStyle}"
FontSize="12"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=clearButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="clearButton"
AutomationProperties.Name="{utils:ResourceString Name=clearButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Clear"
Content="C"
LostFocus="ClearButton_LostFocus"
Visibility="{x:Bind Model.IsInputEmpty, Mode=OneWay, Converter={StaticResource BooleanToVisibilityConverter}}"/>
<controls:CalculatorButton x:Name="ClearEntryButton"
x:Uid="clearEntryButton"
Style="{StaticResource OperatorButtonStyle}"
FontSize="12"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=clearEntryButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="clearEntryButton"
AutomationProperties.Name="{utils:ResourceString Name=clearEntryButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="ClearEntry"
Content="CE"
LostFocus="ClearEntryButton_LostFocus"
Visibility="{x:Bind Model.IsInputEmpty, Mode=OneWay, Converter={StaticResource BooleanToVisibilityNegationConverter}}"/>
<controls:CalculatorButton x:Name="BackSpaceButton"
x:Uid="backSpaceButton"
Grid.Column="1"
Style="{StaticResource SymbolOperatorButtonStyle}"
FontSize="12"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=backSpaceButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="backSpaceButton"
AutomationProperties.Name="{utils:ResourceString Name=backSpaceButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Backspace"
Content="&#xE94F;"/>
</Grid>
<controls:CalculatorButton x:Name="OpenParenthesisButton"
x:Uid="openParenthesisButton"
Grid.Row="2"
Grid.Column="2"
Style="{StaticResource ParenthesisCalcButtonStyle}"
FontSize="18"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=openParenthesisButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="openParenthesisButton"
AutomationProperties.Name="{utils:ResourceString Name=openParenthesisButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="OpenParenthesis"
Content="("
GotFocus="OpenParenthesisButton_GotFocus"
Tag="{x:Bind ParenthesisCountToString(Model.OpenParenthesisCount), Mode=OneWay}"/>
<controls:CalculatorButton x:Name="CloseParenthesisButton"
x:Uid="closeParenthesisButton"
Grid.Row="2"
Grid.Column="3"
Style="{StaticResource OperatorButtonStyle}"
FontSize="18"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=closeParenthesisButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="closeParenthesisButton"
AutomationProperties.Name="{utils:ResourceString Name=closeParenthesisButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="CloseParenthesis"
Content=")"/>
<controls:CalculatorButton x:Name="ModButton"
x:Uid="modButton"
Grid.Row="2"
Grid.Column="4"
Style="{StaticResource OperatorButtonStyle}"
FontSize="12"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=modButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AuditoryFeedback="{utils:ResourceString Name=modButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="modButton"
AutomationProperties.Name="{utils:ResourceString Name=modButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Mod"
Content="%"/>
<Grid x:Uid="StandardOperators"
Grid.Row="2"
<Grid Grid.Row="2"
Grid.RowSpan="5"
Grid.Column="5"
AutomationProperties.HeadingLevel="Level1">
AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{utils:ResourceString Name=StandardOperators/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
@ -543,58 +574,68 @@
<RowDefinition/>
</Grid.RowDefinitions>
<controls:CalculatorButton x:Name="DivideButton"
x:Uid="divideButton"
Grid.Row="0"
Style="{StaticResource SymbolOperatorButtonStyle}"
FontSize="12"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=divideButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AuditoryFeedback="{utils:ResourceString Name=divideButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="divideButton"
AutomationProperties.Name="{utils:ResourceString Name=divideButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Divide"
Content="&#xE94A;"/>
<controls:CalculatorButton x:Name="MultiplyButton"
x:Uid="multiplyButton"
Grid.Row="1"
Style="{StaticResource SymbolOperatorButtonStyle}"
FontSize="12"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=multiplyButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AuditoryFeedback="{utils:ResourceString Name=multiplyButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="multiplyButton"
AutomationProperties.Name="{utils:ResourceString Name=multiplyButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Multiply"
Content="&#xE947;"/>
<controls:CalculatorButton x:Name="MinusButton"
x:Uid="minusButton"
Grid.Row="2"
Style="{StaticResource SymbolOperatorButtonStyle}"
FontSize="12"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=minusButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AuditoryFeedback="{utils:ResourceString Name=minusButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="minusButton"
AutomationProperties.Name="{utils:ResourceString Name=minusButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Subtract"
Content="&#xE949;"/>
<controls:CalculatorButton x:Name="PlusButton"
x:Uid="plusButton"
Grid.Row="3"
Style="{StaticResource SymbolOperatorButtonStyle}"
FontSize="12"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=plusButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AuditoryFeedback="{utils:ResourceString Name=plusButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="plusButton"
AutomationProperties.Name="{utils:ResourceString Name=plusButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Add"
Content="&#xE948;"/>
<controls:CalculatorButton x:Name="EqualButton"
x:Uid="equalButton"
Grid.Row="4"
Style="{StaticResource AccentEmphasizedCalcButtonStyle}"
FontSize="12"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=equalButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=equalButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="equalButton"
AutomationProperties.Name="{utils:ResourceString Name=equalButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Equals"
Content="&#xE94E;"/>
</Grid>
<Grid x:Uid="NumberPad"
Grid.Row="1"
<Grid Grid.Row="1"
Grid.RowSpan="6"
Grid.Column="1"
Grid.ColumnSpan="5"
AutomationProperties.AutomationId="NumberPad"
AutomationProperties.HeadingLevel="Level1">
AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{utils:ResourceString Name=NumberPad/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
@ -611,61 +652,73 @@
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<controls:CalculatorButton x:Name="AButton"
x:Uid="aButton"
Grid.Row="0"
Grid.Column="0"
Style="{StaticResource NumericButtonStyle12}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=aButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
common:KeyboardShortcutManager.VirtualKeyShiftChord="{utils:ResourceVirtualKey Name=aButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyShiftChord}"
AutomationProperties.AutomationId="aButton"
AutomationProperties.Name="{utils:ResourceString Name=aButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="A"
Content="A"
IsEnabled="{x:Bind Model.AreHEXButtonsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="BButton"
x:Uid="bButton"
Grid.Row="1"
Grid.Column="0"
Style="{StaticResource NumericButtonStyle12}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=bButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
common:KeyboardShortcutManager.VirtualKeyShiftChord="{utils:ResourceVirtualKey Name=bButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyShiftChord}"
AutomationProperties.AutomationId="bButton"
AutomationProperties.Name="{utils:ResourceString Name=bButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="B"
Content="B"
IsEnabled="{x:Bind Model.AreHEXButtonsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="CButton"
x:Uid="cButton"
Grid.Row="2"
Grid.Column="0"
Style="{StaticResource NumericButtonStyle12}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=cButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
common:KeyboardShortcutManager.VirtualKeyShiftChord="{utils:ResourceVirtualKey Name=cButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyShiftChord}"
AutomationProperties.AutomationId="cButton"
AutomationProperties.Name="{utils:ResourceString Name=cButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="C"
Content="C"
IsEnabled="{x:Bind Model.AreHEXButtonsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="DButton"
x:Uid="dButton"
Grid.Row="3"
Grid.Column="0"
Style="{StaticResource NumericButtonStyle12}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=dButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
common:KeyboardShortcutManager.VirtualKeyShiftChord="{utils:ResourceVirtualKey Name=dButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyShiftChord}"
AutomationProperties.AutomationId="dButton"
AutomationProperties.Name="{utils:ResourceString Name=dButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="D"
Content="D"
IsEnabled="{x:Bind Model.AreHEXButtonsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="EButton"
x:Uid="eButton"
Grid.Row="4"
Grid.Column="0"
Style="{StaticResource NumericButtonStyle12}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=eButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
common:KeyboardShortcutManager.VirtualKeyShiftChord="{utils:ResourceVirtualKey Name=eButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyShiftChord}"
AutomationProperties.AutomationId="eButton"
AutomationProperties.Name="{utils:ResourceString Name=eButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="E"
Content="E"
IsEnabled="{x:Bind Model.AreHEXButtonsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="FButton"
x:Uid="fButton"
Grid.Row="5"
Grid.Column="0"
Style="{StaticResource NumericButtonStyle12}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=fButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
common:KeyboardShortcutManager.VirtualKeyShiftChord="{utils:ResourceVirtualKey Name=fButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyShiftChord}"
AutomationProperties.AutomationId="fButton"
AutomationProperties.Name="{utils:ResourceString Name=fButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="F"
Content="F"
IsEnabled="{x:Bind Model.AreHEXButtonsEnabled, Mode=OneWay}"/>
@ -680,13 +733,14 @@
</Grid>
<controls:CalculatorButton x:Name="NegateButton"
x:Uid="negateButton"
Grid.Row="6"
Grid.Column="2"
Style="{StaticResource SymbolOperatorKeypadButtonStyle}"
FontSize="12"
FontWeight="Normal"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=negateButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="negateButton"
AutomationProperties.Name="{utils:ResourceString Name=negateButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Negate"
Content="&#xF898;"/>
</Grid>

View file

@ -2,9 +2,11 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Controls="using:CalculatorApp.Controls"
xmlns:common="using:CalculatorApp.Common"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="using:CalculatorApp.ViewModel.Common"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:utils="using:CalculatorApp.Utils"
x:Name="ControlRoot"
d:DesignHeight="315"
d:DesignWidth="400"
@ -26,9 +28,9 @@
</UserControl.Resources>
<Grid x:Name="ScientificAngleOperators"
x:Uid="ScientificAngleOperators"
Margin="3,0,3,0"
AutomationProperties.HeadingLevel="Level1">
AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{utils:ResourceString Name=ScientificAngleOperators/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" MaxWidth="80"/>
<ColumnDefinition Width="1*" MaxWidth="80"/>
@ -71,34 +73,38 @@
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Button x:Name="DegreeButton"
x:Uid="degButton"
Style="{StaticResource CaptionButtonSmallStyle}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=degButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="degButton"
AutomationProperties.Name="{utils:ResourceString Name=degButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Command="{x:Bind ButtonPressed}"
CommandParameter="0"
Content="DEG"/>
<Button x:Name="RadianButton"
x:Uid="radButton"
Style="{StaticResource CaptionButtonSmallStyle}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=radButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="radButton"
AutomationProperties.Name="{utils:ResourceString Name=radButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Command="{x:Bind ButtonPressed}"
CommandParameter="1"
Content="RAD"
Visibility="Collapsed"/>
<Button x:Name="GradsButton"
x:Uid="gradButton"
Style="{StaticResource CaptionButtonSmallStyle}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=gradButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="gradButton"
AutomationProperties.Name="{utils:ResourceString Name=gradButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Command="{x:Bind ButtonPressed}"
CommandParameter="2"
Content="GRAD"
Visibility="Collapsed"/>
<ToggleButton x:Name="FtoeButton"
x:Uid="ftoeButton"
Grid.Column="1"
Style="{StaticResource CaptionToggleButtonWithIndicatorStyle}"
Background="{ThemeResource SystemControlBackgroundTransparentBrush}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=ftoeButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="ftoeButton"
AutomationProperties.Name="{utils:ResourceString Name=ftoeButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Checked="FToEButton_Toggled"
Content="F-E"
IsChecked="{x:Bind Model.IsFToEChecked, Mode=OneWay}"

View file

@ -3,12 +3,14 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Windows10version1803="http://schemas.microsoft.com/winfx/2006/xaml/presentation?IsApiContractNotPresent(Windows.Foundation.UniversalApiContract, 7)"
xmlns:Windows10version1809="http://schemas.microsoft.com/winfx/2006/xaml/presentation?IsApiContractPresent(Windows.Foundation.UniversalApiContract, 7)"
xmlns:common="using:CalculatorApp.Common"
xmlns:controls="using:CalculatorApp.Controls"
xmlns:converters="using:CalculatorApp.Converters"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="using:CalculatorApp"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:triggers="using:CalculatorApp.Views.StateTriggers"
xmlns:utils="using:CalculatorApp.Utils"
x:Name="ControlRoot"
d:DesignHeight="400"
d:DesignWidth="315"
@ -368,16 +370,17 @@
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<controls:OperatorPanelListView x:Uid="ScientificOperatorPanel"
Grid.ColumnSpan="5"
<controls:OperatorPanelListView Grid.ColumnSpan="5"
Background="{ThemeResource AppOperatorPanelBackground}"
AutomationProperties.HeadingLevel="Level1">
AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{utils:ResourceString Name=ScientificOperatorPanel/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<controls:OperatorPanelButton x:Name="TrigButton"
x:Uid="trigButton"
Style="{StaticResource OperatorPanelButtonStyle}"
AutomationProperties.AutomationId="trigButton"
Glyph="&#xF892;">
AutomationProperties.Name="{utils:ResourceString Name=trigButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Glyph="&#xF892;"
Text="{utils:ResourceString Name=trigButton/Text}">
<controls:OperatorPanelButton.FlyoutMenu>
<Flyout x:Name="Trigflyout"
Windows10version1803:Placement="Bottom"
@ -404,21 +407,21 @@
causing the shortcut keys to be used when the control would normally be disabled.
-->
<ToggleButton x:Name="TrigShiftButton"
x:Uid="trigShiftButton"
Style="{StaticResource CaptionToggleButtonStyle}"
FontFamily="{StaticResource CalculatorFontFamily}"
FontSize="{StaticResource CalcOperatorCaptionSize}"
AutomationProperties.AutomationId="trigShiftButton"
AutomationProperties.Name="{utils:ResourceString Name=trigShiftButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Checked="TrigFlyoutShift_Toggle"
Content="&#xF897;"
Unchecked="TrigFlyoutShift_Toggle"
IsEnabled="{x:Bind TrigButton.IsEnabled, Mode=OneWay}"/>
<ToggleButton x:Name="HypButton"
x:Uid="hypButton"
Grid.Row="1"
Style="{StaticResource CaptionToggleButtonStyle}"
AutomationProperties.AutomationId="hypShiftButton"
AutomationProperties.Name="{utils:ResourceString Name=hypButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Checked="TrigFlyoutHyp_Toggle"
Content="hyp"
IsEnabledChanged="ShiftButton_IsEnabledChanged"
@ -441,10 +444,11 @@
</Grid.ColumnDefinitions>
<controls:CalculatorButton x:Name="SinButton"
x:Uid="sinButton"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=sinButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="sinButton"
AutomationProperties.Name="{utils:ResourceString Name=sinButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Sin"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -452,11 +456,12 @@
IsEnabled="{x:Bind TrigButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="CosButton"
x:Uid="cosButton"
Grid.Column="1"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=cosButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="cosButton"
AutomationProperties.Name="{utils:ResourceString Name=cosButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Cos"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -464,11 +469,12 @@
IsEnabled="{x:Bind TrigButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="TanButton"
x:Uid="tanButton"
Grid.Column="2"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=tanButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="tanButton"
AutomationProperties.Name="{utils:ResourceString Name=tanButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Tan"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -476,11 +482,12 @@
IsEnabled="{x:Bind TrigButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="SecButton"
x:Uid="secButton"
Grid.Row="1"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=secButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="secButton"
AutomationProperties.Name="{utils:ResourceString Name=secButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Sec"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -488,12 +495,13 @@
IsEnabled="{x:Bind TrigButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="CscButton"
x:Uid="cscButton"
Grid.Row="1"
Grid.Column="1"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=cscButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="cscButton"
AutomationProperties.Name="{utils:ResourceString Name=cscButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Csc"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -501,12 +509,13 @@
IsEnabled="{x:Bind TrigButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="CotButton"
x:Uid="cotButton"
Grid.Row="1"
Grid.Column="2"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=cotButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="cotButton"
AutomationProperties.Name="{utils:ResourceString Name=cotButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Cot"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -530,10 +539,11 @@
</Grid.ColumnDefinitions>
<controls:CalculatorButton x:Name="InvsinButton"
x:Uid="invsinButton"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKeyShiftChord="{utils:ResourceVirtualKey Name=invsinButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyShiftChord}"
AutomationProperties.AutomationId="invsinButton"
AutomationProperties.Name="{utils:ResourceString Name=invsinButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="InvSin"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -541,11 +551,12 @@
IsEnabled="{x:Bind TrigButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="InvcosButton"
x:Uid="invcosButton"
Grid.Column="1"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKeyShiftChord="{utils:ResourceVirtualKey Name=invcosButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyShiftChord}"
AutomationProperties.AutomationId="invcosButton"
AutomationProperties.Name="{utils:ResourceString Name=invcosButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="InvCos"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -553,11 +564,12 @@
IsEnabled="{x:Bind TrigButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="InvtanButton"
x:Uid="invtanButton"
Grid.Column="2"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKeyShiftChord="{utils:ResourceVirtualKey Name=invtanButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyShiftChord}"
AutomationProperties.AutomationId="invtanButton"
AutomationProperties.Name="{utils:ResourceString Name=invtanButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="InvTan"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -565,11 +577,12 @@
IsEnabled="{x:Bind TrigButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="InvsecButton"
x:Uid="invsecButton"
Grid.Row="1"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKeyShiftChord="{utils:ResourceVirtualKey Name=invsecButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyShiftChord}"
AutomationProperties.AutomationId="invsecButton"
AutomationProperties.Name="{utils:ResourceString Name=invsecButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="InvSec"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -577,12 +590,13 @@
IsEnabled="{x:Bind TrigButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="InvcscButton"
x:Uid="invcscButton"
Grid.Row="1"
Grid.Column="1"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKeyShiftChord="{utils:ResourceVirtualKey Name=invcscButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyShiftChord}"
AutomationProperties.AutomationId="invcscButton"
AutomationProperties.Name="{utils:ResourceString Name=invcscButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="InvCsc"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -590,12 +604,13 @@
IsEnabled="{x:Bind TrigButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="InvcotButton"
x:Uid="invcotButton"
Grid.Row="1"
Grid.Column="2"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKeyShiftChord="{utils:ResourceVirtualKey Name=invcotButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyShiftChord}"
AutomationProperties.AutomationId="invcotButton"
AutomationProperties.Name="{utils:ResourceString Name=invcotButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="InvCot"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -619,10 +634,11 @@
</Grid.ColumnDefinitions>
<controls:CalculatorButton x:Name="SinhButton"
x:Uid="sinhButton"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKeyControlChord="{utils:ResourceVirtualKey Name=sinhButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlChord}"
AutomationProperties.AutomationId="sinhButton"
AutomationProperties.Name="{utils:ResourceString Name=sinhButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Sinh"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -630,11 +646,12 @@
IsEnabled="{x:Bind TrigButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="CoshButton"
x:Uid="coshButton"
Grid.Column="1"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKeyControlChord="{utils:ResourceVirtualKey Name=coshButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlChord}"
AutomationProperties.AutomationId="coshButton"
AutomationProperties.Name="{utils:ResourceString Name=coshButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Cosh"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -642,11 +659,12 @@
IsEnabled="{x:Bind TrigButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="TanhButton"
x:Uid="tanhButton"
Grid.Column="2"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKeyControlChord="{utils:ResourceVirtualKey Name=tanhButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlChord}"
AutomationProperties.AutomationId="tanhButton"
AutomationProperties.Name="{utils:ResourceString Name=tanhButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Tanh"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -654,11 +672,12 @@
IsEnabled="{x:Bind TrigButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="SechButton"
x:Uid="sechButton"
Grid.Row="1"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKeyControlChord="{utils:ResourceVirtualKey Name=sechButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlChord}"
AutomationProperties.AutomationId="sechButton"
AutomationProperties.Name="{utils:ResourceString Name=sechButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Sech"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -666,12 +685,13 @@
IsEnabled="{x:Bind TrigButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="CschButton"
x:Uid="cschButton"
Grid.Row="1"
Grid.Column="1"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKeyControlChord="{utils:ResourceVirtualKey Name=cschButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlChord}"
AutomationProperties.AutomationId="cschButton"
AutomationProperties.Name="{utils:ResourceString Name=cschButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Csch"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -679,12 +699,13 @@
IsEnabled="{x:Bind TrigButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="CothButton"
x:Uid="cothButton"
Grid.Row="1"
Grid.Column="2"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKeyControlChord="{utils:ResourceVirtualKey Name=cothButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlChord}"
AutomationProperties.AutomationId="cothButton"
AutomationProperties.Name="{utils:ResourceString Name=cothButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Coth"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -707,10 +728,11 @@
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<controls:CalculatorButton x:Name="InvsinhButton"
x:Uid="invsinhButton"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKeyControlShiftChord="{utils:ResourceVirtualKey Name=invsinhButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlShiftChord}"
AutomationProperties.AutomationId="invsinhButton"
AutomationProperties.Name="{utils:ResourceString Name=invsinhButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="InvSinh"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -718,11 +740,12 @@
IsEnabled="{x:Bind TrigButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="InvcoshButton"
x:Uid="invcoshButton"
Grid.Column="1"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKeyControlShiftChord="{utils:ResourceVirtualKey Name=invcoshButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlShiftChord}"
AutomationProperties.AutomationId="invcoshButton"
AutomationProperties.Name="{utils:ResourceString Name=invcoshButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="InvCosh"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -730,11 +753,12 @@
IsEnabled="{x:Bind TrigButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="InvtanhButton"
x:Uid="invtanhButton"
Grid.Column="2"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKeyControlShiftChord="{utils:ResourceVirtualKey Name=invtanhButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlShiftChord}"
AutomationProperties.AutomationId="invtanhButton"
AutomationProperties.Name="{utils:ResourceString Name=invtanhButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="InvTanh"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -742,11 +766,12 @@
IsEnabled="{x:Bind TrigButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="InvsechButton"
x:Uid="invsechButton"
Grid.Row="1"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKeyControlShiftChord="{utils:ResourceVirtualKey Name=invsechButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlShiftChord}"
AutomationProperties.AutomationId="invsechButton"
AutomationProperties.Name="{utils:ResourceString Name=invsechButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="InvSech"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -754,12 +779,13 @@
IsEnabled="{x:Bind TrigButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="InvcschButton"
x:Uid="invcschButton"
Grid.Row="1"
Grid.Column="1"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKeyControlShiftChord="{utils:ResourceVirtualKey Name=invcschButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlShiftChord}"
AutomationProperties.AutomationId="invcschButton"
AutomationProperties.Name="{utils:ResourceString Name=invcschButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="InvCsch"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -767,12 +793,13 @@
IsEnabled="{x:Bind TrigButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="InvcothButton"
x:Uid="invcothButton"
Grid.Row="1"
Grid.Column="2"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKeyControlShiftChord="{utils:ResourceVirtualKey Name=invcothButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlShiftChord}"
AutomationProperties.AutomationId="invcothButton"
AutomationProperties.Name="{utils:ResourceString Name=invcothButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="InvCoth"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -785,10 +812,11 @@
</controls:OperatorPanelButton>
<controls:OperatorPanelButton x:Name="FuncButton"
x:Uid="funcButton"
Style="{StaticResource OperatorPanelButtonStyle}"
AutomationProperties.AutomationId="funcButton"
Glyph="&#xF893;">
AutomationProperties.Name="{utils:ResourceString Name=funcButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Glyph="&#xF893;"
Text="{utils:ResourceString Name=funcButton/Text}">
<controls:OperatorPanelButton.FlyoutMenu>
<Flyout x:Name="FuncFlyout"
@ -810,9 +838,10 @@
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<controls:CalculatorButton x:Name="AbsFlyoutButton"
x:Uid="absButton"
Style="{StaticResource SymbolOperatorButtonStyle}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=absButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="absButton"
AutomationProperties.Name="{utils:ResourceString Name=absButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Abs"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -820,10 +849,11 @@
IsEnabled="{x:Bind FuncButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="FloorButton"
x:Uid="floorButton"
Grid.Column="1"
Style="{StaticResource SymbolOperatorButtonStyle}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=floorButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="floorButton"
AutomationProperties.Name="{utils:ResourceString Name=floorButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Floor"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -831,10 +861,11 @@
IsEnabled="{x:Bind FuncButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="CeilButton"
x:Uid="ceilButton"
Grid.Column="2"
Style="{StaticResource SymbolOperatorButtonStyle}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=ceilButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="ceilButton"
AutomationProperties.Name="{utils:ResourceString Name=ceilButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Ceil"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -842,11 +873,12 @@
IsEnabled="{x:Bind FuncButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="RandButton"
x:Uid="randButton"
Grid.Row="1"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSizeSmall}"
common:KeyboardShortcutManager.VirtualKeyShiftChord="{utils:ResourceVirtualKey Name=randButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyShiftChord}"
AutomationProperties.AutomationId="randButton"
AutomationProperties.Name="{utils:ResourceString Name=randButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Rand"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -854,11 +886,12 @@
IsEnabled="{x:Bind FuncButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="DmsButton"
x:Uid="dmsButton"
Grid.Row="1"
Grid.Column="1"
Style="{StaticResource SymbolOperatorButtonStyle}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=dmsButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="dmsButton"
AutomationProperties.Name="{utils:ResourceString Name=dmsButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="DMS"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -866,11 +899,11 @@
IsEnabled="{x:Bind FuncButton.IsEnabled, Mode=OneWay}"/>
<controls:CalculatorButton x:Name="DegreesButton"
x:Uid="degreesButton"
Grid.Row="1"
Grid.Column="2"
Style="{StaticResource SymbolOperatorButtonStyle}"
AutomationProperties.AutomationId="degreesButton"
AutomationProperties.Name="{utils:ResourceString Name=degreesButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Degrees"
Click="FlyoutButton_Clicked"
Command="{x:Bind Model.ButtonPressed}"
@ -883,86 +916,90 @@
</controls:OperatorPanelListView>
<ToggleButton x:Name="ShiftButton"
x:Uid="shiftButton"
Grid.Row="1"
Style="{StaticResource CaptionToggleEmphasizedButtonStyle}"
FontFamily="{StaticResource CalculatorFontFamily}"
FontSize="{StaticResource CalcOperatorCaptionSize}"
AllowFocusOnInteraction="False"
AutomationProperties.AutomationId="shiftButton"
AutomationProperties.Name="{utils:ResourceString Name=shiftButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Checked="ShiftButton_Check"
Content="&#xF897;"
IsEnabledChanged="ShiftButton_IsEnabledChanged"
Unchecked="ShiftButton_Check"
AllowFocusOnInteraction="False"
/>
Unchecked="ShiftButton_Check"/>
<controls:CalculatorButton x:Name="PiButton"
x:Uid="piButton"
Grid.Row="1"
Grid.Column="1"
Style="{StaticResource SymbolOperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSize}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=piButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="piButton"
AutomationProperties.Name="{utils:ResourceString Name=piButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Pi"
Content="&#xf7cf;"/>
<controls:CalculatorButton x:Name="EulerButton"
x:Uid="eulerButton"
Grid.Row="1"
Grid.Column="2"
Style="{StaticResource OperatorButtonStyle}"
FontSize="{StaticResource CalcOperatorCaptionSize}"
common:KeyboardShortcutManager.VirtualKeyShiftChord="{utils:ResourceVirtualKey Name=eulerButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyShiftChord}"
AutomationProperties.AutomationId="eulerButton"
AutomationProperties.Name="{utils:ResourceString Name=eulerButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Euler"
Content="e"/>
<Grid x:Name="DisplayControls"
x:Uid="DisplayControls"
Grid.Row="1"
Grid.Column="2"
Grid.ColumnSpan="3"
AutomationProperties.HeadingLevel="Level1">
AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{utils:ResourceString Name=DisplayControls/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<controls:CalculatorButton x:Name="ClearEntryButton"
x:Uid="clearEntryButton"
Grid.Column="1"
Style="{StaticResource OperatorButtonStyle}"
FontSize="16"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=clearEntryButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="clearEntryButton"
AutomationProperties.Name="{utils:ResourceString Name=clearEntryButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="ClearEntry"
Content="CE"
LostFocus="ClearEntryButton_LostFocus"
Visibility="{x:Bind Model.IsInputEmpty, Mode=OneWay, Converter={StaticResource BooleanToVisibilityNegationConverter}}"/>
<controls:CalculatorButton x:Name="ClearButton"
x:Uid="clearButton"
Grid.Column="1"
Style="{StaticResource OperatorButtonStyle}"
FontSize="16"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=clearButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="clearButton"
AutomationProperties.Name="{utils:ResourceString Name=clearButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Clear"
Content="C"
LostFocus="ClearButton_LostFocus"
Visibility="{x:Bind Model.IsInputEmpty, Mode=OneWay, Converter={StaticResource BooleanToVisibilityConverter}}"/>
<controls:CalculatorButton x:Name="BackSpaceButton"
x:Uid="backSpaceButton"
Grid.Column="2"
Style="{StaticResource SymbolOperatorButtonStyle}"
FontFamily="{StaticResource CalculatorFontFamily}"
FontSize="16"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=backSpaceButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="backSpaceButton"
AutomationProperties.Name="{utils:ResourceString Name=backSpaceButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Backspace"
Content="&#xE94F;"/>
</Grid>
<Grid x:Uid="ScientificFunctions"
Grid.Row="2"
<Grid Grid.Row="2"
Grid.RowSpan="6"
AutomationProperties.HeadingLevel="Level1">
AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{utils:ResourceString Name=ScientificFunctions/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<!-- Scientific Row 1 -->
<Grid x:Name="Row1">
<Grid.RowDefinitions>
@ -975,49 +1012,57 @@
</Grid.RowDefinitions>
<controls:CalculatorButton x:Name="XPower2Button"
x:Uid="xpower2Button"
Style="{StaticResource SymbolOperatorButtonStyle}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=xpower2Button/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="xpower2Button"
AutomationProperties.Name="{utils:ResourceString Name=xpower2Button/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="XPower2"
Content="&#xf7c8;"/>
<controls:CalculatorButton x:Name="SquareRootButton"
x:Uid="squareRootButton"
Grid.Row="1"
Style="{StaticResource SymbolOperatorButtonStyle}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=squareRootButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="squareRootButton"
AutomationProperties.Name="{utils:ResourceString Name=squareRootButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Sqrt"
Content="&#xF899;"/>
<controls:CalculatorButton x:Name="PowerButton"
x:Uid="powerButton"
Grid.Row="2"
Style="{StaticResource SymbolOperatorButtonStyle}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=powerButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=powerButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AuditoryFeedback="{utils:ResourceString Name=powerButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="powerButton"
AutomationProperties.Name="{utils:ResourceString Name=powerButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="XPowerY"
Content="&#xf7ca;"/>
<controls:CalculatorButton x:Name="PowerOf10Button"
x:Uid="powerOf10Button"
Grid.Row="3"
Style="{StaticResource SymbolOperatorButtonStyle}"
common:KeyboardShortcutManager.VirtualKeyControlChord="{utils:ResourceVirtualKey Name=powerOf10Button/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlChord}"
AutomationProperties.AutomationId="powerOf10Button"
AutomationProperties.Name="{utils:ResourceString Name=powerOf10Button/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="TenPowerX"
Content="&#xF7CC;"/>
<controls:CalculatorButton x:Name="LogBase10Button"
x:Uid="logBase10Button"
Grid.Row="4"
Style="{StaticResource OperatorButtonStyle}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=logBase10Button/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="logBase10Button"
AutomationProperties.Name="{utils:ResourceString Name=logBase10Button/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="LogBase10"
Content="log"/>
<controls:CalculatorButton x:Name="LogBaseEButton"
x:Uid="logBaseEButton"
Grid.Row="5"
Style="{StaticResource OperatorButtonStyle}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=logBaseEButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="logBaseEButton"
AutomationProperties.Name="{utils:ResourceString Name=logBaseEButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="LogBaseE"
Content="ln"/>
</Grid>
@ -1033,54 +1078,61 @@
<RowDefinition/>
</Grid.RowDefinitions>
<controls:CalculatorButton x:Name="XPower3Button"
x:Uid="xpower3Button"
Style="{StaticResource EmphasizedCalcButtonStyle}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=xpower3Button/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="xpower3Button"
AutomationProperties.Name="{utils:ResourceString Name=xpower3Button/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Cube"
Click="ShiftButton_Uncheck"
Content="&#xf7cb;"/>
<controls:CalculatorButton x:Name="CubeRootButton"
x:Uid="cubeRootButton"
Grid.Row="1"
Style="{StaticResource EmphasizedCalcButtonStyle}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=cubeRootButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="cubeRootButton"
AutomationProperties.Name="{utils:ResourceString Name=cubeRootButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="CubeRoot"
Click="ShiftButton_Uncheck"
Content="&#xF881;"/>
<controls:CalculatorButton x:Name="YSquareRootButton"
x:Uid="ySquareRootButton"
Grid.Row="2"
Style="{StaticResource EmphasizedCalcButtonStyle}"
common:KeyboardShortcutManager.VirtualKeyControlChord="{utils:ResourceVirtualKey Name=ySquareRootButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlChord}"
AuditoryFeedback="{utils:ResourceString Name=ySquareRootButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="ySquareRootButton"
AutomationProperties.Name="{utils:ResourceString Name=ySquareRootButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="YRootX"
Click="ShiftButton_Uncheck"
Content="&#xf7cd;"/>
<controls:CalculatorButton x:Name="TwoPowerXButton"
x:Uid="twoPowerXButton"
Grid.Row="3"
Style="{StaticResource EmphasizedCalcButtonStyle}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=twoPowerXButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="twoPowerXButton"
AutomationProperties.Name="{utils:ResourceString Name=twoPowerXButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="TwoPowerX"
Click="ShiftButton_Uncheck"
Content="&#xF882;"/>
<controls:CalculatorButton x:Name="LogBaseY"
x:Uid="logBaseY"
Grid.Row="4"
Style="{StaticResource EmphasizedCalcButtonStyle}"
common:KeyboardShortcutManager.VirtualKeyShiftChord="{utils:ResourceVirtualKey Name=logBaseY/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyShiftChord}"
AutomationProperties.AutomationId="logBaseY"
AutomationProperties.Name="{utils:ResourceString Name=logBaseY/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="LogBaseY"
Click="ShiftButton_Uncheck"
Content="&#xF883;"/>
<controls:CalculatorButton x:Name="PowerOfEButton"
x:Uid="powerOfEButton"
Grid.Row="5"
Style="{StaticResource EmphasizedCalcButtonStyle}"
common:KeyboardShortcutManager.VirtualKeyControlChord="{utils:ResourceVirtualKey Name=powerOfEButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlChord}"
AutomationProperties.AutomationId="powerOfEButton"
AutomationProperties.Name="{utils:ResourceString Name=powerOfEButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="EPowerX"
Click="ShiftButton_Uncheck"
Content="&#xf7ce;"/>
@ -1099,75 +1151,83 @@
</Grid.ColumnDefinitions>
<controls:CalculatorButton x:Name="InvertButton"
x:Uid="invertButton"
Style="{StaticResource SymbolOperatorButtonStyle}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=invertButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="invertButton"
AutomationProperties.Name="{utils:ResourceString Name=invertButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Invert"
Content="&#xf7c9;"/>
<controls:CalculatorButton x:Name="AbsButton"
x:Uid="absButton"
Grid.Column="1"
Style="{StaticResource SymbolOperatorButtonStyle}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=absButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="absButton"
AutomationProperties.Name="{utils:ResourceString Name=absButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Abs"
Content="&#xF884;"/>
<controls:CalculatorButton x:Name="ExpButton"
x:Uid="expButton"
Grid.Column="2"
Style="{StaticResource OperatorButtonStyle}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=expButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="expButton"
AutomationProperties.Name="{utils:ResourceString Name=expButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Exp"
Content="exp"/>
<controls:CalculatorButton x:Name="ModButton"
x:Uid="modButton"
Grid.Column="3"
Style="{StaticResource OperatorButtonStyle}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=modButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AuditoryFeedback="{utils:ResourceString Name=modButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="modButton"
AutomationProperties.Name="{utils:ResourceString Name=modButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Mod"
Content="mod"/>
</Grid>
<controls:CalculatorButton x:Name="OpenParenthesisButton"
x:Uid="openParenthesisButton"
Grid.Row="3"
Grid.Column="1"
Style="{StaticResource ParenthesisCalcButtonStyle}"
FontSize="19"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=openParenthesisButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="openParenthesisButton"
AutomationProperties.Name="{utils:ResourceString Name=openParenthesisButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="OpenParenthesis"
Content="("
GotFocus="OpenParenthesisButton_GotFocus"
Tag="{x:Bind ParenthesisCountToString(Model.OpenParenthesisCount), Mode=OneWay}"/>
<controls:CalculatorButton x:Name="CloseParenthesisButton"
x:Uid="closeParenthesisButton"
Grid.Row="3"
Grid.Column="2"
Style="{StaticResource OperatorButtonStyle}"
FontSize="19"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=closeParenthesisButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="closeParenthesisButton"
AutomationProperties.Name="{utils:ResourceString Name=closeParenthesisButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="CloseParenthesis"
Content=")"/>
<controls:CalculatorButton x:Name="FactorialButton"
x:Uid="factorialButton"
Grid.Row="3"
Grid.Column="3"
Style="{StaticResource SymbolOperatorButtonStyle}"
FontSize="18"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=factorialButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="factorialButton"
AutomationProperties.Name="{utils:ResourceString Name=factorialButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Factorial"
Content="&#xF887;"/>
<Grid x:Name="StandardOperators"
x:Uid="StandardOperators"
Grid.Row="3"
Grid.RowSpan="5"
Grid.Column="4"
AutomationProperties.HeadingLevel="Level1">
AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{utils:ResourceString Name=StandardOperators/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
@ -1176,65 +1236,76 @@
<RowDefinition/>
</Grid.RowDefinitions>
<controls:CalculatorButton x:Name="DivideButton"
x:Uid="divideButton"
Grid.Row="0"
Style="{StaticResource SymbolOperatorButtonStyle}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=divideButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AuditoryFeedback="{utils:ResourceString Name=divideButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="divideButton"
AutomationProperties.Name="{utils:ResourceString Name=divideButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Divide"
Content="&#xE94A;"/>
<controls:CalculatorButton x:Name="MultiplyButton"
x:Uid="multiplyButton"
Grid.Row="1"
Style="{StaticResource SymbolOperatorButtonStyle}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=multiplyButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AuditoryFeedback="{utils:ResourceString Name=multiplyButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="multiplyButton"
AutomationProperties.Name="{utils:ResourceString Name=multiplyButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Multiply"
Content="&#xE947;"/>
<controls:CalculatorButton x:Name="MinusButton"
x:Uid="minusButton"
Grid.Row="2"
Style="{StaticResource SymbolOperatorButtonStyle}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=minusButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AuditoryFeedback="{utils:ResourceString Name=minusButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="minusButton"
AutomationProperties.Name="{utils:ResourceString Name=minusButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Subtract"
Content="&#xE949;"/>
<controls:CalculatorButton x:Name="PlusButton"
x:Uid="plusButton"
Grid.Row="3"
Style="{StaticResource SymbolOperatorButtonStyle}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=plusButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AuditoryFeedback="{utils:ResourceString Name=plusButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="plusButton"
AutomationProperties.Name="{utils:ResourceString Name=plusButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Add"
Content="&#xE948;"/>
<controls:CalculatorButton x:Name="EqualButton"
x:Uid="equalButton"
Grid.Row="4"
Style="{StaticResource AccentEmphasizedCalcButtonStyle}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=equalButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=equalButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="equalButton"
AutomationProperties.Name="{utils:ResourceString Name=equalButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Equals"
Content="&#xE94E;"/>
</Grid>
<controls:CalculatorButton x:Name="NegateButton"
x:Uid="negateButton"
Grid.Row="7"
Grid.Column="1"
Style="{StaticResource SymbolOperatorKeypadButtonStyle}"
FontSize="16"
FontWeight="Normal"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=negateButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="negateButton"
AutomationProperties.Name="{utils:ResourceString Name=negateButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Negate"
Content="&#xF898;"
IsEnabled="{x:Bind Model.IsNegateEnabled, Mode=OneWay}"/>
<local:NumberPad x:Name="NumberPad"
x:Uid="NumberPad"
Grid.Row="4"
Grid.RowSpan="4"
Grid.Column="1"
Grid.ColumnSpan="3"
AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{utils:ResourceString Name=NumberPad/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonStyle="{StaticResource NumericButtonStyle24}"/>
</Grid>
</UserControl>

View file

@ -7,6 +7,7 @@
xmlns:local="using:CalculatorApp"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:triggers="using:CalculatorApp.Views.StateTriggers"
xmlns:utils="using:CalculatorApp.Utils"
x:Name="ControlRoot"
XYFocusKeyboardNavigation="Enabled"
mc:Ignorable="d">
@ -170,11 +171,11 @@
</VisualStateManager.VisualStateGroups>
<Grid x:Name="DisplayControls"
x:Uid="DisplayControls"
Grid.Row="0"
Grid.Column="2"
Grid.ColumnSpan="4"
AutomationProperties.HeadingLevel="Level1">
AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{utils:ResourceString Name=DisplayControls/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="PercentColumn"/>
<ColumnDefinition/>
@ -182,44 +183,48 @@
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<controls:CalculatorButton x:Name="PercentButton"
x:Uid="percentButton"
Grid.Column="0"
Style="{StaticResource SymbolOperatorButtonStyle}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=percentButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="percentButton"
AutomationProperties.Name="{utils:ResourceString Name=percentButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Percent"
Content="&#xE94C;"/>
<controls:CalculatorButton x:Name="ClearEntryButton"
x:Uid="clearEntryButton"
Grid.Column="1"
Style="{StaticResource OperatorButtonStyle}"
FontSize="16"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=clearEntryButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="clearEntryButton"
AutomationProperties.Name="{utils:ResourceString Name=clearEntryButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="ClearEntry"
Content="CE"/>
<controls:CalculatorButton x:Name="ClearButton"
x:Uid="clearButton"
Grid.Column="2"
Style="{StaticResource OperatorButtonStyle}"
FontSize="16"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=clearButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="clearButton"
AutomationProperties.Name="{utils:ResourceString Name=clearButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Clear"
Content="C"/>
<controls:CalculatorButton x:Name="BackSpaceButton"
x:Uid="backSpaceButton"
Grid.Column="3"
Style="{StaticResource SymbolOperatorButtonStyle}"
FontSize="16"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=backSpaceButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="backSpaceButton"
AutomationProperties.Name="{utils:ResourceString Name=backSpaceButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Backspace"
Content="&#xE94F;"/>
</Grid>
<Grid x:Name="StandardFunctions"
x:Uid="StandardFunctions"
Grid.Row="1"
Grid.Column="2"
Grid.ColumnSpan="4"
AutomationProperties.HeadingLevel="Level1">
AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{utils:ResourceString Name=StandardFunctions/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition x:Name="FnR1" Height="0"/>
@ -234,35 +239,38 @@
<ColumnDefinition x:Name="FnC3" Width="1*"/>
</Grid.ColumnDefinitions>
<controls:CalculatorButton x:Name="InvertButton"
x:Uid="invertButton"
Style="{StaticResource SymbolOperatorButtonStyle}"
FontSize="18"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=invertButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="invertButton"
AutomationProperties.Name="{utils:ResourceString Name=invertButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Invert"
Content="&#xf7c9;"/>
<controls:CalculatorButton x:Name="XPower2Button"
x:Uid="xpower2Button"
Grid.Column="1"
Style="{StaticResource SymbolOperatorButtonStyle}"
FontSize="18"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=xpower2Button/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="xpower2Button"
AutomationProperties.Name="{utils:ResourceString Name=xpower2Button/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="XPower2"
Content="&#xf7c8;"/>
<controls:CalculatorButton x:Name="SquareRootButton"
x:Uid="squareRootButton"
Grid.Column="2"
Style="{StaticResource SymbolOperatorButtonStyle}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=squareRootButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="squareRootButton"
AutomationProperties.Name="{utils:ResourceString Name=squareRootButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Sqrt"
Content="&#xF899;"/>
</Grid>
<Grid x:Name="StandardOperators"
x:Uid="StandardOperators"
Grid.Row="1"
Grid.RowSpan="5"
Grid.Column="5"
AutomationProperties.HeadingLevel="Level1">
AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{utils:ResourceString Name=StandardOperators/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
@ -271,58 +279,69 @@
<RowDefinition/>
</Grid.RowDefinitions>
<controls:CalculatorButton x:Name="DivideButton"
x:Uid="divideButton"
Grid.Row="0"
Style="{StaticResource SymbolOperatorButtonStyle}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=divideButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AuditoryFeedback="{utils:ResourceString Name=divideButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="divideButton"
AutomationProperties.Name="{utils:ResourceString Name=divideButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Divide"
Content="&#xE94A;"/>
<controls:CalculatorButton x:Name="MultiplyButton"
x:Uid="multiplyButton"
Grid.Row="1"
Style="{StaticResource SymbolOperatorButtonStyle}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=multiplyButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AuditoryFeedback="{utils:ResourceString Name=multiplyButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="multiplyButton"
AutomationProperties.Name="{utils:ResourceString Name=multiplyButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Multiply"
Content="&#xE947;"/>
<controls:CalculatorButton x:Name="MinusButton"
x:Uid="minusButton"
Grid.Row="2"
Style="{StaticResource SymbolOperatorButtonStyle}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=minusButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AuditoryFeedback="{utils:ResourceString Name=minusButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="minusButton"
AutomationProperties.Name="{utils:ResourceString Name=minusButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Subtract"
Content="&#xE949;"/>
<controls:CalculatorButton x:Name="PlusButton"
x:Uid="plusButton"
Grid.Row="3"
Style="{StaticResource SymbolOperatorButtonStyle}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=plusButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AuditoryFeedback="{utils:ResourceString Name=plusButton/[using:CalculatorApp.Controls]CalculatorButton/AuditoryFeedback}"
AutomationProperties.AutomationId="plusButton"
AutomationProperties.Name="{utils:ResourceString Name=plusButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Add"
Content="&#xE948;"/>
<controls:CalculatorButton x:Name="EqualButton"
x:Uid="equalButton"
Grid.Row="4"
Style="{StaticResource AccentEmphasizedCalcButtonStyle}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=equalButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=equalButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="equalButton"
AutomationProperties.Name="{utils:ResourceString Name=equalButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Equals"
Content="&#xE94E;"/>
</Grid>
<local:NumberPad x:Name="NumberPad"
x:Uid="NumberPad"
Grid.Row="2"
Grid.RowSpan="4"
Grid.Column="2"
Grid.ColumnSpan="3"
AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{utils:ResourceString Name=NumberPad/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonStyle="{StaticResource NumericButtonStyle24}"/>
<controls:CalculatorButton x:Name="NegateButton"
x:Uid="negateButton"
Grid.Row="5"
Grid.Column="2"
Style="{StaticResource SymbolOperatorKeypadButtonStyle}"
FontWeight="Normal"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=negateButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="negateButton"
AutomationProperties.Name="{utils:ResourceString Name=negateButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Negate"
Content="&#xF898;"/>
</Grid>

View file

@ -12,6 +12,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="using:CalculatorApp"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:utils="using:CalculatorApp.Utils"
d:DesignHeight="300"
d:DesignWidth="400"
Loaded="OnLoaded"
@ -1001,11 +1002,11 @@
<!-- ComboBox for Date Calculation options -->
<ComboBox x:Name="DateCalculationOption"
x:Uid="DateCalculationOption"
Grid.Row="1"
Margin="-12,0,0,0"
Background="{ThemeResource SubtleFillColorTransparentBrush}"
BorderThickness="{ThemeResource ControlBorderThemeThickness}"
AutomationProperties.Name="{utils:ResourceString Name=DateCalculationOption/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
SelectedIndex="0">
<ComboBox.Resources>
<ResourceDictionary>
@ -1026,12 +1027,12 @@
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>
</ComboBox.Resources>
<ComboBoxItem x:Uid="Date_DifferenceOption"
MinWidth="276"
<ComboBoxItem MinWidth="276"
Content="{utils:ResourceString Name=Date_DifferenceOption/Content}"
ContentTemplate="{StaticResource ComboBoxItemContentTemplate}"
IsSelected="{Binding IsDateDiffMode, Mode=TwoWay}"/>
<ComboBoxItem x:Uid="Date_AddSubtractOption"
MinWidth="276"
<ComboBoxItem MinWidth="276"
Content="{utils:ResourceString Name=Date_AddSubtractOption/Content}"
ContentTemplate="{StaticResource ComboBoxItemContentTemplate}"
IsSelected="{Binding IsDateDiffMode, Converter={StaticResource BooleanNegationConverter}, Mode=TwoWay}"/>
</ComboBox>
@ -1054,28 +1055,28 @@
<!-- From Date -->
<CalendarDatePicker x:Name="DateDiff_FromDate"
x:Uid="DateDiff_FromHeader"
Grid.Row="1"
Style="{StaticResource DateCalculation_CalendarPickerStyle}"
CalendarViewStyle="{StaticResource DateCalculation_CalendarViewStyle}"
Closed="CalendarFlyoutClosed"
DateChanged="FromDate_DateChanged"/>
DateChanged="FromDate_DateChanged"
Header="{utils:ResourceString Name=DateDiff_FromHeader/Header}"/>
<!-- To Date -->
<CalendarDatePicker x:Name="DateDiff_ToDate"
x:Uid="DateDiff_ToHeader"
Grid.Row="3"
Margin="0,0,0,0"
Style="{StaticResource DateCalculation_CalendarPickerStyle}"
CalendarViewStyle="{StaticResource DateCalculation_CalendarViewStyle}"
Closed="CalendarFlyoutClosed"
DateChanged="ToDate_DateChanged"/>
DateChanged="ToDate_DateChanged"
Header="{utils:ResourceString Name=DateDiff_ToHeader/Header}"/>
<!-- Difference Result -->
<TextBlock x:Uid="Date_DifferenceLabel"
Grid.Row="5"
<TextBlock Grid.Row="5"
Margin="0,0,0,0"
Style="{ThemeResource DateCalculation_CaptionTextStyle}"/>
Style="{ThemeResource DateCalculation_CaptionTextStyle}"
Text="{utils:ResourceString Name=Date_DifferenceLabel/Text}"/>
<TextBlock x:Name="DateDiffAllUnitsResultLabel"
Grid.Row="6"
Margin="0,4,0,0"
@ -1114,13 +1115,13 @@
<!-- From Date -->
<CalendarDatePicker x:Name="AddSubtract_FromDate"
x:Uid="AddSubtract_Date_FromHeader"
Grid.Row="1"
Margin="0,0,0,0"
Style="{StaticResource DateCalculation_CalendarPickerStyle}"
CalendarViewStyle="{StaticResource DateCalculation_CalendarViewStyle}"
Closed="CalendarFlyoutClosed"
DateChanged="AddSubtract_DateChanged"/>
DateChanged="AddSubtract_DateChanged"
Header="{utils:ResourceString Name=AddSubtract_Date_FromHeader/Header}"/>
<Grid Grid.Row="3">
<Grid.ColumnDefinitions>
@ -1129,20 +1130,20 @@
</Grid.ColumnDefinitions>
<RadioButton x:Name="AddOption"
x:Uid="AddOption"
MinWidth="80"
MaxWidth="160"
VerticalAlignment="Top"
Checked="AddSubtractOption_Checked"
Content="{utils:ResourceString Name=AddOption/Content}"
IsChecked="{Binding IsAddMode, Mode=TwoWay}"/>
<RadioButton x:Name="SubtractOption"
x:Uid="SubtractOption"
Grid.Column="1"
MinWidth="80"
MaxWidth="160"
Margin="20,0,0,0"
VerticalAlignment="Top"
Checked="AddSubtractOption_Checked"
Content="{utils:ResourceString Name=SubtractOption/Content}"
IsChecked="{Binding IsAddMode, Converter={StaticResource BooleanNegationConverter}, Mode=TwoWay}"/>
</Grid>
@ -1162,9 +1163,9 @@
</Grid.ColumnDefinitions>
<TextBlock x:Name="YearsLabel"
x:Uid="YearsLabel"
Margin="0,0,0,6"
Style="{StaticResource DateCalculation_CaptionTextStyle}"
Text="{utils:ResourceString Name=YearsLabel/Text}"
TextWrapping="Wrap"/>
<ComboBox x:Name="YearsValue"
Grid.Row="1"
@ -1175,10 +1176,10 @@
SelectedIndex="{Binding YearsOffset, Mode=TwoWay}"
SelectionChanged="OffsetValue_Changed"/>
<TextBlock x:Name="MonthsLabel"
x:Uid="MonthsLabel"
Grid.Column="1"
Margin="12,0,12,6"
Style="{StaticResource DateCalculation_CaptionTextStyle}"
Text="{utils:ResourceString Name=MonthsLabel/Text}"
TextWrapping="Wrap"/>
<ComboBox x:Name="MonthsValue"
Grid.Row="1"
@ -1191,10 +1192,10 @@
SelectedIndex="{Binding MonthsOffset, Mode=TwoWay}"
SelectionChanged="OffsetValue_Changed"/>
<TextBlock x:Name="DaysLabel"
x:Uid="DaysLabel"
Grid.Column="2"
Margin="0,0,0,6"
Style="{StaticResource DateCalculation_CaptionTextStyle}"
Text="{utils:ResourceString Name=DaysLabel/Text}"
TextWrapping="Wrap"/>
<ComboBox x:Name="DaysValue"
Grid.Row="1"
@ -1208,9 +1209,9 @@
</Grid>
<!-- Resulting Date -->
<TextBlock x:Uid="DateLabel"
Grid.Row="7"
Style="{StaticResource DateCalculation_CaptionTextStyle}"/>
<TextBlock Grid.Row="7"
Style="{StaticResource DateCalculation_CaptionTextStyle}"
Text="{utils:ResourceString Name=DateLabel/Text}"/>
<TextBlock x:Name="DateResultLabel"
Grid.Row="8"

View file

@ -1,4 +1,4 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:CalculatorApp">

View file

@ -9,6 +9,7 @@
xmlns:local="using:CalculatorApp"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mux="using:Microsoft.UI.Xaml.Controls"
xmlns:utils="using:CalculatorApp.Utils"
xmlns:vm="using:CalculatorApp.ViewModel"
d:DesignHeight="300"
d:DesignWidth="400"
@ -114,7 +115,6 @@
Text="="/>
<TextBox x:Name="ValueTextBox"
x:Uid="VariableValueTextBox"
Grid.Column="2"
Margin="6,0,0,0"
Padding="0,10,0,0"
@ -122,6 +122,7 @@
VerticalAlignment="Center"
Style="{StaticResource ThemedVariableTextBoxStyle}"
FontStyle="Italic"
AutomationProperties.Name="{utils:ResourceString Name=VariableValueTextBox/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
GotFocus="TextBoxGotFocus"
KeyDown="TextBoxKeyDown"
LosingFocus="TextBoxLosingFocus"
@ -132,18 +133,18 @@
</TextBox>
</Grid>
<Slider x:Uid="VariableValueSlider"
Grid.Column="1"
<Slider Grid.Column="1"
Margin="8,0,8,-6"
VerticalAlignment="Center"
contract7Present:CornerRadius="{ThemeResource ControlCornerRadius}"
AutomationProperties.Name="{utils:ResourceString Name=VariableValueSlider/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
DataContext="{x:Bind}"
SmallChange="{x:Bind Step, Mode=TwoWay}"
StepFrequency="{x:Bind Step, Mode=TwoWay}"
ValueChanged="Slider_ValueChanged"
Value="{x:Bind Value, Mode=TwoWay}"
Maximum="{x:Bind Max, Mode=TwoWay}"
Minimum="{x:Bind Min, Mode=TwoWay}"
contract7Present:CornerRadius="{ThemeResource ControlCornerRadius}"/>
Minimum="{x:Bind Min, Mode=TwoWay}"/>
<Grid Grid.Row="1"
Padding="8,0,8,8"
@ -159,17 +160,17 @@
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock x:Uid="MinTextBlock"
Margin="0,12,4,0"
<TextBlock Margin="0,12,4,0"
VerticalAlignment="Center"
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
FontSize="12"/>
FontSize="12"
Text="{utils:ResourceString Name=MinTextBlock/Text}"/>
<TextBox x:Name="MinTextBox"
x:Uid="VariableMinTextBox"
Grid.Column="1"
Padding="2,16,2,2"
Style="{StaticResource ThemedVariableTextBoxStyle}"
FontSize="12"
AutomationProperties.Name="{utils:ResourceString Name=VariableMinTextBox/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
GotFocus="TextBoxGotFocus"
KeyDown="TextBoxKeyDown"
LosingFocus="TextBoxLosingFocus"
@ -184,18 +185,18 @@
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock x:Uid="StepTextBlock"
Margin="0,12,4,0"
<TextBlock Margin="0,12,4,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
FontSize="12"/>
FontSize="12"
Text="{utils:ResourceString Name=StepTextBlock/Text}"/>
<TextBox x:Name="StepTextBox"
x:Uid="VariableStepTextBox"
Grid.Column="1"
Padding="2,16,2,2"
Style="{StaticResource ThemedVariableTextBoxStyle}"
FontSize="12"
AutomationProperties.Name="{utils:ResourceString Name=VariableStepTextBox/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
GotFocus="TextBoxGotFocus"
KeyDown="TextBoxKeyDown"
LosingFocus="TextBoxLosingFocus"
@ -210,17 +211,17 @@
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock x:Uid="MaxTextBlock"
Margin="0,12,4,0"
<TextBlock Margin="0,12,4,0"
VerticalAlignment="Center"
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
FontSize="12"/>
FontSize="12"
Text="{utils:ResourceString Name=MaxTextBlock/Text}"/>
<TextBox x:Name="MaxTextBox"
x:Uid="VariableMaxTextBox"
Grid.Column="1"
Padding="2,16,2,2"
Style="{StaticResource ThemedVariableTextBoxStyle}"
FontSize="12"
AutomationProperties.Name="{utils:ResourceString Name=VariableMaxTextBox/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
GotFocus="TextBoxGotFocus"
KeyDown="TextBoxKeyDown"
LosingFocus="TextBoxLosingFocus"
@ -233,14 +234,15 @@
</Grid>
<ToggleButton Name="VariableAreaSettings"
x:Uid="VariableAreaSettings"
Margin="0,6,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
BorderThickness="0"
AutomationProperties.Name="{utils:ResourceString Name=VariableAreaSettings/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Click="VariableAreaClicked"
IsChecked="{x:Bind SliderSettingsVisible, Mode=OneWay}"
Tapped="VariableAreaButtonTapped">
Tapped="VariableAreaButtonTapped"
ToolTipService.ToolTip="{utils:ResourceString Name=VariableAreaSettings/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}">
<ToggleButton.Resources>
<ResourceDictionary>
<ResourceDictionary.ThemeDictionaries>
@ -649,7 +651,6 @@
</ToggleButton.Style>
</ToggleButton>
<controls:MathRichEditBox x:Name="MathRichEditBox"
x:Uid="mathRichEditBox"
Grid.Column="1"
MinHeight="44"
Padding="{TemplateBinding Padding}"
@ -663,22 +664,23 @@
InputScope="Text"
MathText="{Binding MathEquation, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"
MaxLength="2048"
PlaceholderText="{utils:ResourceString Name=mathRichEditBox/PlaceholderText}"
TextWrapping="NoWrap">
<controls:MathRichEditBox.ContextFlyout>
<MenuFlyout x:Name="MathRichEditContextMenu">
<MenuFlyoutItem x:Name="CutMenuItem"
x:Uid="cutEquationMenuItem"
Icon="Cut"/>
Icon="Cut"
Text="{utils:ResourceString Name=cutEquationMenuItem/Text}"/>
<MenuFlyoutItem x:Name="CopyMenuItem"
x:Uid="copyEquationMenuItem"
Icon="Copy"/>
Icon="Copy"
Text="{utils:ResourceString Name=copyEquationMenuItem/Text}"/>
<MenuFlyoutItem x:Name="PasteMenuItem"
x:Uid="pasteEquationMenuItem"
Icon="Paste"/>
Icon="Paste"
Text="{utils:ResourceString Name=pasteEquationMenuItem/Text}"/>
<MenuFlyoutItem x:Name="UndoMenuItem"
x:Uid="undoEquationMenuItem"
Icon="Undo"/>
<MenuFlyoutItem x:Name="SelectAllMenuItem" x:Uid="selectAllEquationMenuItem"/>
Icon="Undo"
Text="{utils:ResourceString Name=undoEquationMenuItem/Text}"/>
<MenuFlyoutItem x:Name="SelectAllMenuItem" Text="{utils:ResourceString Name=selectAllEquationMenuItem/Text}"/>
<MenuFlyoutSeparator/>
<MenuFlyoutItem x:Name="FunctionAnalysisMenuItem">
<MenuFlyoutItem.Icon>
@ -700,7 +702,6 @@
</controls:MathRichEditBox>
<Button x:Name="FunctionButton"
x:Uid="functionAnalysisButton"
Grid.Column="2"
MinWidth="38"
Margin="1,2"
@ -709,11 +710,12 @@
BorderThickness="0"
FontFamily="{StaticResource CalculatorFontFamily}"
AutomationProperties.AccessibilityView="Raw"
AutomationProperties.Name="{utils:ResourceString Name=functionAnalysisButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Content="&#xE945;"
IsTabStop="False"
ToolTipService.ToolTip="{utils:ResourceString Name=functionAnalysisButton/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}"
Visibility="Collapsed"/>
<ToggleButton x:Name="ColorChooserButton"
x:Uid="colorChooserButton"
Grid.Column="3"
MinWidth="38"
Margin="1,2"
@ -722,8 +724,10 @@
BorderThickness="0"
FontFamily="{StaticResource CalculatorFontFamily}"
AutomationProperties.AccessibilityView="Raw"
AutomationProperties.Name="{utils:ResourceString Name=colorChooserButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Content="&#xE790;"
IsTabStop="False"
ToolTipService.ToolTip="{utils:ResourceString Name=colorChooserButton/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}"
Visibility="Collapsed">
<ToggleButton.Resources>
<ResourceDictionary>
@ -766,7 +770,6 @@
Visibility="Collapsed"/>
<Grid x:Name="RemoveButtonPanel" Grid.Column="5">
<Button x:Name="RemoveButton"
x:Uid="removeButton"
MinWidth="38"
Margin="1,2"
VerticalAlignment="Stretch"
@ -774,8 +777,10 @@
BorderThickness="0"
FontFamily="{StaticResource CalculatorFontFamily}"
AutomationProperties.AccessibilityView="Raw"
Content="&#xE74D;"
AutomationProperties.Name="{utils:ResourceString Name=removeButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Content=""
IsTabStop="False"
ToolTipService.ToolTip="{utils:ResourceString Name=removeButton/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}"
Visibility="Collapsed"/>
</Grid>
<Button x:Name="DeleteButton"
@ -802,10 +807,10 @@
</ResourceDictionary>
</UserControl.Resources>
<ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel x:Uid="EquationInputPanel">
<StackPanel AutomationProperties.Name="{utils:ResourceString Name=EquationInputPanel/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<!-- This ListView and the one below should be replacted by an ItemRepeater once https://github.com/microsoft/microsoft-ui-xaml/issues/2011 is fixed. -->
<ListView x:Name="EquationInputList"
x:Uid="EquationInputList"
AutomationProperties.Name="{utils:ResourceString Name=EquationInputList/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
IsItemClickEnabled="False"
ItemsSource="{x:Bind Equations}"
SelectionMode="None"
@ -833,9 +838,9 @@
<ListView.ItemTemplate>
<DataTemplate x:DataType="vm:EquationViewModel">
<controls:EquationTextBox x:Name="EquationInputButton"
x:Uid="EquationInputButton"
Margin="1,0,1,2"
Style="{StaticResource EquationTextBoxStyle}"
AutomationProperties.Name="{utils:ResourceString Name=EquationInputButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
DataContext="{x:Bind Mode=OneWay}"
DataContextChanged="EquationTextBox_DataContextChanged"
EquationButtonClicked="EquationTextBox_EquationButtonClicked"
@ -870,7 +875,7 @@
<Rectangle Height="1"
Margin="12"
Fill="{ThemeResource DividerStrokeColorDefaultBrush}"/>
<ListView x:Uid="VariableListView"
<ListView AutomationProperties.Name="{utils:ResourceString Name=VariableListView/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
IsItemClickEnabled="False"
ItemTemplate="{StaticResource VariableDataTemplate}"
ItemsSource="{x:Bind Variables, Mode=OneWay}"

View file

@ -1,16 +1,17 @@
<UserControl x:Class="CalculatorApp.EquationStylePanelControl"
<UserControl x:Class="CalculatorApp.EquationStylePanelControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="using:CalculatorApp"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:utils="using:CalculatorApp.Utils"
mc:Ignorable="d">
<StackPanel>
<TextBlock x:Uid="LineOptionsHeading"
Margin="8,0,0,16"
<TextBlock Margin="8,0,0,16"
FontSize="20"
FontWeight="Medium"
AutomationProperties.HeadingLevel="Level2"/>
AutomationProperties.HeadingLevel="Level2"
Text="{utils:ResourceString Name=LineOptionsHeading/Text}"/>
<GridView x:Name="ColorChooser"
ItemsSource="{x:Bind AvailableColors}"
Loaded="ColorChooserLoaded"
@ -66,7 +67,7 @@
Fill="Transparent"
Stroke="Transparent"
StrokeThickness="2"/>
<ContentPresenter x:Name="ItemContent" />
<ContentPresenter x:Name="ItemContent"/>
</Grid>
</ControlTemplate>
</Setter.Value>
@ -74,9 +75,9 @@
</Style>
</GridView.Resources>
<GridView.Header>
<TextBlock x:Uid="LineColorText"
Margin="8,0,8,8"
Foreground="{ThemeResource TextFillColorSecondaryBrush}"/>
<TextBlock Margin="8,0,8,8"
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
Text="{utils:ResourceString Name=LineColorText/Text}"/>
</GridView.Header>
<GridView.ItemTemplate>
<DataTemplate x:DataType="Brush">
@ -106,9 +107,9 @@
Visibility="Visible"
IsEnabled="{x:Bind EnableLineStylePicker, Mode=OneWay}">
<ComboBox.Header>
<TextBlock x:Uid="StyleChooserBoxHeading"
Margin="0,0,8,8"
Foreground="{ThemeResource TextFillColorSecondaryBrush}"/>
<TextBlock Margin="0,0,8,8"
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
Text="{utils:ResourceString Name=StyleChooserBoxHeading/Text}"/>
</ComboBox.Header>
<ComboBox.ItemTemplate>
<!-- Set x:DataType to be Platform::Object so that we can pass it to the x:Bind function directly since we cannot pass an enum in c++/cx -->

View file

@ -1,6 +1,7 @@
<UserControl x:Class="CalculatorApp.GraphingCalculator"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:common="using:CalculatorApp.Common"
xmlns:contract7NotPresent="http://schemas.microsoft.com/winfx/2006/xaml/presentation?IsApiContractNotPresent(Windows.Foundation.UniversalApiContract,7)"
xmlns:contract7Present="http://schemas.microsoft.com/winfx/2006/xaml/presentation?IsApiContractPresent(Windows.Foundation.UniversalApiContract,7)"
xmlns:contract8Present="http://schemas.microsoft.com/winfx/2006/xaml/presentation?IsApiContractPresent(Windows.Foundation.UniversalApiContract, 8)"
@ -9,6 +10,7 @@
xmlns:graphControl="using:GraphControl"
xmlns:local="using:CalculatorApp"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:utils="using:CalculatorApp.Utils"
x:Name="Control"
DataContextChanged="GraphingCalculator_DataContextChanged"
mc:Ignorable="d">
@ -553,13 +555,12 @@
<!-- Top panel -->
<Grid Grid.ColumnSpan="2">
<ToggleSwitch x:Name="SwitchModeToggleButton"
x:Uid="SwitchModeToggleButton"
Margin="0,0,12,2"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Style="{StaticResource ConditionalGraphModeToggleSwitchStyle}"
AutomationProperties.AutomationId="SwitchModeToggleButton"
AutomationProperties.Name="{x:Bind local:GraphingCalculator.GetInfoForSwitchModeToggleButton(SwitchModeToggleButton.IsOn), Mode=OneWay}"
AutomationProperties.Name="{utils:ResourceString Name=SwitchModeToggleButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Toggled="SwitchModeToggleButton_Toggled"
ToolTipService.ToolTip="{x:Bind local:GraphingCalculator.GetInfoForSwitchModeToggleButton(SwitchModeToggleButton.IsOn), Mode=OneWay}"
Visibility="Collapsed"/>
@ -595,9 +596,9 @@
VariablesUpdated="GraphingControl_VariablesUpdated">
<graphControl:Grapher.ContextFlyout>
<MenuFlyout Placement="Bottom">
<MenuFlyoutItem x:Uid="GraphCopyMenuItem"
Click="GraphMenuFlyoutItem_Click"
Icon="Copy"/>
<MenuFlyoutItem Click="GraphMenuFlyoutItem_Click"
Icon="Copy"
Text="{utils:ResourceString Name=GraphCopyMenuItem/Text}"/>
</MenuFlyout>
</graphControl:Grapher.ContextFlyout>
</graphControl:Grapher>
@ -639,24 +640,26 @@
Glyph="&#xE3B3;"/>
</ToggleButton>
<Button x:Uid="shareButton"
MinWidth="32"
<Button MinWidth="32"
Margin="0,4,0,4"
Style="{ThemeResource ThemedGraphButtonStyle}"
contract7Present:CornerRadius="{ThemeResource ControlCornerRadius}"
Click="OnShareClick">
AutomationProperties.Name="{utils:ResourceString Name=shareButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Click="OnShareClick"
ToolTipService.ToolTip="{utils:ResourceString Name=shareButton/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}">
<FontIcon FontFamily="{StaticResource CalculatorFontFamily}"
FontSize="16"
Glyph="&#xE72D;"/>
</Button>
<Button x:Name="GraphSettingsButton"
x:Uid="graphSettingsButton"
MinWidth="3"
Margin="4"
Style="{ThemeResource ThemedGraphButtonStyle}"
contract7Present:CornerRadius="{ThemeResource ControlCornerRadius}"
Click="GraphSettingsButton_Click">
AutomationProperties.Name="{utils:ResourceString Name=graphSettingsButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Click="GraphSettingsButton_Click"
ToolTipService.ToolTip="{utils:ResourceString Name=graphSettingsButton/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}">
<FontIcon FontFamily="{StaticResource CalculatorFontFamily}"
FontSize="16"
Glyph="&#xE3B4;"/>
@ -701,7 +704,6 @@
</ResourceDictionary>
</StackPanel.Resources>
<RepeatButton x:Name="ZoomInButton"
x:Uid="zoomInButton"
MinHeight="32"
Margin="4"
HorizontalAlignment="Stretch"
@ -709,7 +711,9 @@
FontFamily="{StaticResource CalculatorFontFamily}"
contract7Present:CornerRadius="{ThemeResource ControlCornerRadius}"
AutomationProperties.AutomationId="zoomInButton"
Command="{x:Bind ZoomInButtonPressed, Mode=OneTime}">
AutomationProperties.Name="{utils:ResourceString Name=zoomInButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Command="{x:Bind ZoomInButtonPressed, Mode=OneTime}"
ToolTipService.ToolTip="{utils:ResourceString Name=zoomInButton/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}">
<FontIcon FontFamily="{StaticResource CalculatorFontFamily}"
FontSize="14"
Glyph="&#xE948;"/>
@ -719,7 +723,6 @@
</RepeatButton>
<RepeatButton x:Name="ZoomOutButton"
x:Uid="zoomOutButton"
MinHeight="32"
Margin="4,0,4,0"
HorizontalAlignment="Stretch"
@ -727,7 +730,9 @@
FontFamily="{StaticResource CalculatorFontFamily}"
contract7Present:CornerRadius="{ThemeResource ControlCornerRadius}"
AutomationProperties.AutomationId="zoomOutButton"
Command="{x:Bind ZoomOutButtonPressed, Mode=OneTime}">
AutomationProperties.Name="{utils:ResourceString Name=zoomOutButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Command="{x:Bind ZoomOutButtonPressed, Mode=OneTime}"
ToolTipService.ToolTip="{utils:ResourceString Name=zoomOutButton/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}">
<FontIcon FontFamily="{StaticResource CalculatorFontFamily}"
FontSize="14"
Glyph="&#xE949;"/>
@ -736,14 +741,16 @@
</RepeatButton.KeyboardAccelerators>
</RepeatButton>
<ToggleButton x:Uid="graphViewButton"
MinHeight="32"
<ToggleButton MinHeight="32"
Margin="4"
Style="{ThemeResource ThemedGraphViewToggleButtonStyle}"
common:KeyboardShortcutManager.VirtualKeyControlChord="{utils:ResourceVirtualKey Name=graphViewButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlChord}"
contract7Present:CornerRadius="{ThemeResource ControlCornerRadius}"
AutomationProperties.AutomationId="graphViewButton"
AutomationProperties.Name="{utils:ResourceString Name=graphViewButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Click="GraphViewButton_Click"
IsChecked="{x:Bind IsManualAdjustment, Mode=TwoWay}">
IsChecked="{x:Bind IsManualAdjustment, Mode=TwoWay}"
ToolTipService.ToolTip="{utils:ResourceString Name=graphViewButton/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}">
<ToggleButton.Content>
<Grid>
<FontIcon FontFamily="{StaticResource CalculatorFontFamily}"

File diff suppressed because it is too large Load diff

View file

@ -6,6 +6,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="using:CalculatorApp"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:utils="using:CalculatorApp.Utils"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
mc:Ignorable="d">
<UserControl.Resources>
@ -110,26 +111,26 @@
<Grid>
<StackPanel Margin="4,0,4,4">
<TextBlock x:Name="GraphOptionsHeading"
x:Uid="GraphOptionsHeading"
FontSize="20"
FontWeight="Medium"
AutomationProperties.HeadingLevel="Level1"/>
AutomationProperties.HeadingLevel="Level1"
Text="{utils:ResourceString Name=GraphOptionsHeading/Text}"/>
<Grid Margin="0,16,0,4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock x:Name="GridHeading"
x:Uid="GridHeading"
Style="{StaticResource SubTitleTextBoxStyle}"
AutomationProperties.HeadingLevel="Level2"/>
<HyperlinkButton x:Uid="ResetViewButton"
Grid.Column="1"
AutomationProperties.HeadingLevel="Level2"
Text="{utils:ResourceString Name=GridHeading/Text}"/>
<HyperlinkButton Grid.Column="1"
Padding="0"
FontSize="12"
Foreground="{ThemeResource AccentTextFillColorPrimaryBrush}"
BorderThickness="0"
Click="ResetViewButton_Clicked">
FontSize="12"
Click="ResetViewButton_Clicked"
Content="{utils:ResourceString Name=ResetViewButton/Content}">
<HyperlinkButton.Resources>
<ResourceDictionary>
<StaticResource x:Key="HyperlinkButtonBackgroundPointerOver" ResourceKey="SubtleFillColorTransparentBrush"/>
@ -151,73 +152,73 @@
</Grid.ColumnDefinitions>
<TextBox x:Name="SettingsXMin"
x:Uid="GraphSettingsXMin"
MaxWidth="160"
Style="{x:Bind SelectTextBoxStyle(ViewModel.XError, ViewModel.XMinError), Mode=OneWay}"
contract7Present:CornerRadius="{ThemeResource ControlCornerRadius}"
Header="{utils:ResourceString Name=GraphSettingsXMin/Header}"
HeaderTemplate="{StaticResource XYTextBoxHeaderTemplate}"
PreviewKeyDown="GridSettingsTextBox_PreviewKeyDown"
Text="{x:Bind ViewModel.XMin, Mode=TwoWay}"/>
<TextBox x:Name="SettingsXMax"
x:Uid="GraphSettingsXMax"
Grid.Column="2"
MaxWidth="160"
Style="{x:Bind SelectTextBoxStyle(ViewModel.XError, ViewModel.XMaxError), Mode=OneWay}"
contract7Present:CornerRadius="{ThemeResource ControlCornerRadius}"
Header="{utils:ResourceString Name=GraphSettingsXMax/Header}"
HeaderTemplate="{StaticResource XYTextBoxHeaderTemplate}"
PreviewKeyDown="GridSettingsTextBox_PreviewKeyDown"
Text="{x:Bind ViewModel.XMax, Mode=TwoWay}"/>
<TextBox x:Name="SettingsYMin"
x:Uid="GraphSettingsYMin"
Grid.Row="2"
MaxWidth="160"
Style="{x:Bind SelectTextBoxStyle(ViewModel.YError, ViewModel.YMinError), Mode=OneWay}"
contract7Present:CornerRadius="{ThemeResource ControlCornerRadius}"
Header="{utils:ResourceString Name=GraphSettingsYMin/Header}"
HeaderTemplate="{StaticResource XYTextBoxHeaderTemplate}"
PreviewKeyDown="GridSettingsTextBox_PreviewKeyDown"
Text="{x:Bind ViewModel.YMin, Mode=TwoWay}"/>
<TextBox x:Name="SettingsYMax"
x:Uid="GraphSettingsYMax"
Grid.Row="2"
Grid.Column="2"
MaxWidth="160"
Style="{x:Bind SelectTextBoxStyle(ViewModel.YError, ViewModel.YMaxError), Mode=OneWay}"
contract7Present:CornerRadius="{ThemeResource ControlCornerRadius}"
Header="{utils:ResourceString Name=GraphSettingsYMax/Header}"
HeaderTemplate="{StaticResource XYTextBoxHeaderTemplate}"
PreviewKeyDown="GridSettingsTextBox_PreviewKeyDown"
Text="{x:Bind ViewModel.YMax, Mode=TwoWay}"/>
</Grid>
<TextBlock x:Name="UnitsHeading"
x:Uid="UnitsHeading"
Margin="0,16,0,6"
Style="{StaticResource SubTitleTextBoxStyle}"
AutomationProperties.HeadingLevel="Level2"/>
AutomationProperties.HeadingLevel="Level2"
Text="{utils:ResourceString Name=UnitsHeading/Text}"/>
<StackPanel AutomationProperties.LabeledBy="{Binding ElementName=UnitsHeading}" Orientation="Horizontal">
<RadioButton x:Name="Radians"
x:Uid="TrigModeRadians"
Style="{StaticResource TrigUnitsRadioButtonStyle}"
contract7Present:CornerRadius="{ThemeResource ControlCornerRadius}"
Content="{utils:ResourceString Name=TrigModeRadians/Content}"
IsChecked="{x:Bind ViewModel.TrigModeRadians, Mode=TwoWay}"/>
<RadioButton x:Name="Degrees"
x:Uid="TrigModeDegrees"
Margin="4,0"
Style="{StaticResource TrigUnitsRadioButtonStyle}"
contract7Present:CornerRadius="{ThemeResource ControlCornerRadius}"
Content="{utils:ResourceString Name=TrigModeDegrees/Content}"
IsChecked="{x:Bind ViewModel.TrigModeDegrees, Mode=TwoWay}"/>
<RadioButton x:Name="Gradians"
x:Uid="TrigModeGradians"
Style="{StaticResource TrigUnitsRadioButtonStyle}"
contract7Present:CornerRadius="{ThemeResource ControlCornerRadius}"
Content="{utils:ResourceString Name=TrigModeGradians/Content}"
IsChecked="{x:Bind ViewModel.TrigModeGradians, Mode=TwoWay}"/>
</StackPanel>
<TextBlock x:Name="LineThicknessBoxHeading"
x:Uid="LineThicknessBoxHeading"
Margin="0,16,0,6"
Style="{StaticResource SubTitleTextBoxStyle}"
AutomationProperties.HeadingLevel="Level2"/>
AutomationProperties.HeadingLevel="Level2"
Text="{utils:ResourceString Name=LineThicknessBoxHeading/Text}"/>
<ComboBox MinWidth="200"
HorizontalAlignment="Stretch"
AutomationProperties.LabeledBy="{Binding ElementName=LineThicknessBoxHeading}"
@ -246,15 +247,19 @@
</ComboBox.ItemTemplate>
</ComboBox>
<TextBlock x:Name="GraphThemeHeading"
x:Uid="GraphThemeHeading"
Margin="0,16,0,6"
Style="{StaticResource SubTitleTextBoxStyle}"
AutomationProperties.HeadingLevel="Level2"/>
AutomationProperties.HeadingLevel="Level2"
AutomationProperties.Name="{utils:ResourceString Name=GraphThemeHeading/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Text="{utils:ResourceString Name=GraphThemeHeading/Text}"/>
<StackPanel AutomationProperties.LabeledBy="{Binding ElementName=GraphThemeHeading}">
<RadioButton x:Uid="AlwaysLightTheme" IsChecked="{x:Bind IsMatchAppTheme, Mode=TwoWay, Converter={StaticResource BooleanNegationConverter}}"/>
<RadioButton x:Uid="MatchAppTheme"
Margin="1,0"
<RadioButton AutomationProperties.Name="{utils:ResourceString Name=AlwaysLightTheme/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Content="{utils:ResourceString Name=AlwaysLightTheme/Content}"
IsChecked="{x:Bind IsMatchAppTheme, Mode=TwoWay, Converter={StaticResource BooleanNegationConverter}}"/>
<RadioButton Margin="1,0"
AutomationProperties.Name="{utils:ResourceString Name=MatchAppTheme/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Content="{utils:ResourceString Name=MatchAppTheme/Content}"
IsChecked="{x:Bind IsMatchAppTheme, Mode=TwoWay}"/>
</StackPanel>
</StackPanel>

View file

@ -8,6 +8,7 @@
xmlns:local="using:CalculatorApp"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ts="using:CalculatorApp.TemplateSelectors"
xmlns:utils="using:CalculatorApp.Utils"
xmlns:vm="using:CalculatorApp.ViewModel"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
mc:Ignorable="d">
@ -221,7 +222,7 @@
</ResourceDictionary>
</UserControl.Resources>
<Grid x:Uid="FunctionAnalysisGrid">
<Grid AutomationProperties.Name="{utils:ResourceString Name=FunctionAnalysisGrid/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
@ -235,12 +236,13 @@
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button x:Name="BackButton"
x:Uid="equationAnalysisBack"
MinWidth="44"
VerticalAlignment="Stretch"
Style="{ThemeResource ThemedBackButtonStyle}"
contract7Present:CornerRadius="{ThemeResource ControlCornerRadius}"
Click="BackButton_Click">
AutomationProperties.Name="{utils:ResourceString Name=equationAnalysisBack/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Click="BackButton_Click"
ToolTipService.ToolTip="{utils:ResourceString Name=equationAnalysisBack/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}">
<StackPanel Margin="5,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
@ -258,22 +260,22 @@
</StackPanel>
</StackPanel>
</Button>
<controls:MathRichEditBox x:Uid="KGFEquationTextBox"
Grid.Column="1"
<controls:MathRichEditBox Grid.Column="1"
Padding="10,0,6,0"
VerticalAlignment="Stretch"
VerticalContentAlignment="Center"
Style="{StaticResource KGF_RichEditBoxStyle}"
Foreground="{ThemeResource TitleMathRichEditBoxForegroundBrush}"
AutomationProperties.Name="{utils:ResourceString Name=KGFEquationTextBox/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
MathText="{x:Bind ViewModel.Expression, Mode=OneWay}"/>
</Grid>
<TextBlock x:Uid="KeyGraphFeaturesLabel"
Grid.Row="1"
<TextBlock Grid.Row="1"
Margin="12,12,10,0"
Style="{StaticResource KGF_TitleTextBlockStyle}"
FontSize="20"
FontWeight="Medium"
AutomationProperties.HeadingLevel="Level1"/>
AutomationProperties.HeadingLevel="Level1"
Text="{utils:ResourceString Name=KeyGraphFeaturesLabel/Text}"/>
<ListView x:Name="KeyGraphFeaturesListView"
Grid.Row="2"

View file

@ -2,12 +2,14 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:automation="using:CalculatorApp.ViewModel.Common.Automation"
xmlns:common="using:CalculatorApp.Common"
xmlns:converters="using:CalculatorApp.Converters"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="using:CalculatorApp"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:model="using:CalculatorApp.ViewModel"
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
xmlns:utils="using:CalculatorApp.Utils"
AutomationProperties.AutomationId="HistoryList"
FlowDirection="LeftToRight"
mc:Ignorable="d">
@ -42,18 +44,20 @@
<muxc:SymbolIconSource x:Key="DeleteSymbol" Symbol="Delete"/>
<muxc:SwipeItems x:Key="HistorySwipeItems" Mode="Execute">
<muxc:SwipeItem x:Uid="DeleteHistorySwipeItem"
<muxc:SwipeItem AutomationProperties.Name="{utils:ResourceString Name=DeleteHistorySwipeItem/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
IconSource="{StaticResource DeleteSymbol}"
Invoked="OnDeleteSwipeInvoked"/>
Invoked="OnDeleteSwipeInvoked"
Text="{utils:ResourceString Name=DeleteHistorySwipeItem/Text}"/>
</muxc:SwipeItems>
<MenuFlyout x:Name="HistoryContextMenu">
<MenuFlyoutItem x:Uid="CopyHistoryMenuItem"
Click="OnCopyMenuItemClicked"
Icon="Copy"/>
<MenuFlyoutItem x:Uid="DeleteHistoryMenuItem"
<MenuFlyoutItem Click="OnCopyMenuItemClicked"
Icon="Copy"
Text="{utils:ResourceString Name=CopyHistoryMenuItem/Text}"/>
<MenuFlyoutItem AutomationProperties.Name="{utils:ResourceString Name=DeleteHistoryMenuItem/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Click="OnDeleteMenuItemClicked"
Icon="Delete"/>
Icon="Delete"
Text="{utils:ResourceString Name=DeleteHistoryMenuItem/Text}"/>
</MenuFlyout>
<DataTemplate x:Key="HistoryItemTemplate" x:DataType="model:HistoryItemViewModel">
@ -133,10 +137,10 @@
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock x:Name="HistoryEmpty"
x:Uid="HistoryEmpty"
Margin="12,8,24,0"
Style="{ThemeResource BodyTextBlockStyle}"
Foreground="{ThemeResource TextFillColorPrimaryBrush}"
Text="{utils:ResourceString Name=HistoryEmpty/Text}"
TextWrapping="Wrap"
Visibility="{x:Bind Model.ItemsCount, Converter={StaticResource ItemSizeToVisibilityConverter}, Mode=OneWay}"/>
<ListView x:Name="HistoryListView"
@ -162,12 +166,15 @@
</ListView.ItemContainerTransitions>
</ListView>
<Button x:Name="ClearHistory"
x:Uid="ClearHistory"
Grid.Row="1"
Style="{StaticResource ClearAllHistoryMemoryButtonStyle}"
common:KeyboardShortcutManager.VirtualKeyControlShiftChord="{utils:ResourceVirtualKey Name=ClearHistory/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlShiftChord}"
AccessKey="{utils:ResourceString Name=ClearHistory/AccessKey}"
AutomationProperties.AutomationId="ClearHistory"
AutomationProperties.Name="{utils:ResourceString Name=ClearHistory/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Command="{x:Bind Model.ClearCommand, Mode=OneWay}"
Content="&#xE74D;"
Content=""
ToolTipService.ToolTip="{utils:ResourceString Name=ClearHistory/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}"
Visibility="{x:Bind Model.ItemsCount, Mode=OneWay, Converter={StaticResource ItemSizeToVisibilityNegationConverter}}"/>
</Grid>
</Grid>

View file

@ -2,12 +2,14 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:automation="using:CalculatorApp.ViewModel.Common.Automation"
xmlns:common="using:CalculatorApp.Common"
xmlns:converters="using:CalculatorApp.Converters"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="using:CalculatorApp"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
xmlns:selectors="using:CalculatorApp.TemplateSelectors"
xmlns:utils="using:CalculatorApp.Utils"
xmlns:vmcom="using:CalculatorApp.ViewModel.Common"
x:Name="PageRoot"
muxc:BackdropMaterial.ApplyToRootOrPageBackground="True"
@ -28,26 +30,26 @@
<Setter Property="KeyTipPlacementMode" Value="Right"/>
</Style>
<DataTemplate x:Key="NavViewCategoryItemDataTemplate" x:DataType="vmcom:NavCategory">
<muxc:NavigationViewItem Content="{x:Bind Name}"
Tag="{x:Bind ViewMode}"
<muxc:NavigationViewItem Style="{StaticResource NavViewItemStyle}"
AccessKey="{x:Bind AccessKey}"
IsEnabled="{x:Bind IsEnabled, Mode=OneWay}"
Style="{StaticResource NavViewItemStyle}"
AutomationProperties.AutomationId="{x:Bind AutomationId}"
AutomationProperties.Name="{x:Bind AutomationName}"
AutomationProperties.AutomationId="{x:Bind AutomationId}">
Content="{x:Bind Name}"
Tag="{x:Bind ViewMode}"
IsEnabled="{x:Bind IsEnabled, Mode=OneWay}">
<muxc:NavigationViewItem.Icon>
<FontIcon FontFamily="{StaticResource CalculatorFontFamily}" Glyph="{x:Bind Glyph}"/>
</muxc:NavigationViewItem.Icon>
</muxc:NavigationViewItem>
</DataTemplate>
<DataTemplate x:Key="NavViewCategoryGroupItemDataTemplate" x:DataType="vmcom:NavCategoryGroup">
<muxc:NavigationViewItemHeader Content="{x:Bind Name}"
<muxc:NavigationViewItemHeader AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{x:Bind AutomationName}"
AutomationProperties.HeadingLevel="Level1"/>
Content="{x:Bind Name}"/>
</DataTemplate>
<selectors:NavViewMenuItemTemplateSelector x:Key="NavViewMenuItemTemplateSelector"
CategoryItemTemplate="{StaticResource NavViewCategoryItemDataTemplate}"
CategoryGroupItemTemplate="{StaticResource NavViewCategoryGroupItemDataTemplate}"/>
CategoryGroupItemTemplate="{StaticResource NavViewCategoryGroupItemDataTemplate}"
CategoryItemTemplate="{StaticResource NavViewCategoryItemDataTemplate}"/>
<converters:BooleanToVisibilityNegationConverter x:Key="BooleanToVisibilityNegationConverter"/>
<converters:BooleanNegationConverter x:Key="BooleanNegationConverter"/>
@ -89,16 +91,16 @@
they are not to be shown, only to have the command and shortcut assigned to them.
-->
<Button x:Name="CopyButton"
x:Uid="copyButton"
common:KeyboardShortcutManager.VirtualKeyControlChord="{utils:ResourceVirtualKey Name=copyButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlChord}"
Command="{x:Bind Model.CopyCommand}"/>
<Button x:Name="PasteButton"
x:Uid="pasteButton"
common:KeyboardShortcutManager.VirtualKeyControlChord="{utils:ResourceVirtualKey Name=pasteButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlChord}"
Command="{x:Bind Model.PasteCommand}"/>
<Button x:Name="CopyButtonAlternate"
x:Uid="copyButtonAlternate"
common:KeyboardShortcutManager.VirtualKeyControlChord="{utils:ResourceVirtualKey Name=copyButtonAlternate/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyControlChord}"
Command="{x:Bind Model.CopyCommand}"/>
<Button x:Name="PasteButtonAlternate"
x:Uid="pasteButtonAlternate"
common:KeyboardShortcutManager.VirtualKeyShiftChord="{utils:ResourceVirtualKey Name=pasteButtonAlternate/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKeyShiftChord}"
Command="{x:Bind Model.PasteCommand}"/>
</StackPanel>
@ -109,8 +111,8 @@
IsAlwaysOnTopMode="{x:Bind Model.IsAlwaysOnTop, Mode=OneWay}"/>
<muxc:NavigationView x:Name="NavView"
x:Uid="NavView"
Grid.Row="1"
AccessKey="{utils:ResourceString Name=NavView/AccessKey}"
CompactModeThresholdWidth="Infinity"
DataContext="{x:Bind Model}"
ExpandedModeThresholdWidth="Infinity"
@ -119,11 +121,11 @@
IsSettingsVisible="True"
ItemInvoked="OnNavItemInvoked"
Loaded="OnNavLoaded"
MenuItemsSource="{x:Bind NavViewCategoriesSource, Mode=OneWay}"
MenuItemTemplateSelector="{StaticResource NavViewMenuItemTemplateSelector}"
MenuItemsSource="{x:Bind NavViewCategoriesSource, Mode=OneWay}"
OpenPaneLength="{x:Bind NavigationViewOpenPaneLength(Model.IsAlwaysOnTop), Mode=OneWay}"
PaneDisplayMode="LeftMinimal"
PaneClosed="OnNavPaneClosed"
PaneDisplayMode="LeftMinimal"
PaneOpened="OnNavPaneOpened"
SelectionChanged="OnNavSelectionChanged"
TabIndex="1"
@ -161,13 +163,14 @@
Visibility="{x:Bind Model.IsAlwaysOnTop, Converter={StaticResource BooleanToVisibilityNegationConverter}, Mode=OneWay}"/>
<Button x:Name="NormalAlwaysOnTopButton"
x:Uid="EnterAlwaysOnTopButton"
Grid.Column="2"
Style="{StaticResource SquareIconButtonStyle}"
AutomationProperties.AutomationId="NormalAlwaysOnTopButton"
AutomationProperties.Name="{utils:ResourceString Name=EnterAlwaysOnTopButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Click="AlwaysOnTopButtonClick"
Content="&#xEE49;"
TabIndex="3"
ToolTipService.ToolTip="{utils:ResourceString Name=EnterAlwaysOnTopButton/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}"
Visibility="{x:Bind Model.DisplayNormalAlwaysOnTopOption, Mode=OneWay}">
<Button.KeyboardAccelerators>
<KeyboardAccelerator Key="Up" Modifiers="Menu"/>

View file

@ -8,6 +8,7 @@
xmlns:local="using:CalculatorApp"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:model="using:CalculatorApp.ViewModel"
xmlns:utils="using:CalculatorApp.Utils"
x:Name="MemoryList"
FlowDirection="LeftToRight"
mc:Ignorable="d">
@ -18,17 +19,17 @@
<converters:BooleanNegationConverter x:Key="BooleanNegationConverter"/>
<MenuFlyout x:Name="MemoryContextMenu">
<MenuFlyoutItem x:Uid="ClearMemoryMenuItem" Click="OnClearMenuItemClicked">
<MenuFlyoutItem Click="OnClearMenuItemClicked" Text="{utils:ResourceString Name=ClearMemoryMenuItem/Text}">
<MenuFlyoutItem.Icon>
<FontIcon FontFamily="{StaticResource CalculatorFontFamily}" Glyph="&#xf754;"/>
</MenuFlyoutItem.Icon>
</MenuFlyoutItem>
<MenuFlyoutItem x:Uid="MemPlusMenuItem" Click="OnMemoryAddMenuItemClicked">
<MenuFlyoutItem Click="OnMemoryAddMenuItemClicked" Text="{utils:ResourceString Name=MemPlusMenuItem/Text}">
<MenuFlyoutItem.Icon>
<FontIcon FontFamily="{StaticResource CalculatorFontFamily}" Glyph="&#xf757;"/>
</MenuFlyoutItem.Icon>
</MenuFlyoutItem>
<MenuFlyoutItem x:Uid="MemMinusMenuItem" Click="OnMemorySubtractMenuItemClicked">
<MenuFlyoutItem Click="OnMemorySubtractMenuItemClicked" Text="{utils:ResourceString Name=MemMinusMenuItem/Text}">
<MenuFlyoutItem.Icon>
<FontIcon FontFamily="{StaticResource CalculatorFontFamily}" Glyph="&#xf758;"/>
</MenuFlyoutItem.Icon>
@ -96,10 +97,10 @@
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock x:Name="MemoryPaneEmpty"
x:Uid="MemoryPaneEmpty"
Margin="12,8,24,0"
Style="{ThemeResource BodyTextBlockStyle}"
Foreground="{ThemeResource TextFillColorPrimaryBrush}"
Text="{utils:ResourceString Name=MemoryPaneEmpty/Text}"
TextWrapping="Wrap"
Visibility="{Binding IsMemoryEmpty, Converter={StaticResource BooleanToVisibilityConverter}}"/>
<ListView x:Name="MemoryListView"
@ -123,12 +124,14 @@
</ListView.ItemContainerTransitions>
</ListView>
<Button x:Name="ClearMemory"
x:Uid="ClearMemory"
Grid.Row="1"
Style="{ThemeResource ClearAllHistoryMemoryButtonStyle}"
AccessKey="{utils:ResourceString Name=ClearMemory/AccessKey}"
AutomationProperties.AutomationId="ClearMemory"
AutomationProperties.Name="{utils:ResourceString Name=ClearMemory/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Command="{x:Bind Model.ClearMemoryCommand, Mode=OneWay}"
Content="&#xE74D;"
ToolTipService.ToolTip="{utils:ResourceString Name=ClearMemory/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}"
Visibility="{x:Bind Model.IsMemoryEmpty, Mode=OneWay, Converter={StaticResource BooleanToVisibilityNegationConverter}}"/>
</Grid>

View file

@ -4,6 +4,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
xmlns:utils="using:CalculatorApp.Utils"
FlowDirection="LeftToRight"
mc:Ignorable="d">
<UserControl.Resources>
@ -18,16 +19,16 @@
Glyph="&#xf758;"/>
<muxc:SwipeItems x:Key="MemorySwipeItems" Mode="Reveal">
<muxc:SwipeItem x:Uid="ClearMemorySwipeItem"
Background="{ThemeResource SystemControlBackgroundAccentBrush}"
<muxc:SwipeItem Background="{ThemeResource SystemControlBackgroundAccentBrush}"
AutomationProperties.Name="{utils:ResourceString Name=ClearMemorySwipeItem/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
IconSource="{StaticResource MemClearGlyph}"
Invoked="OnClearSwipeInvoked"/>
<muxc:SwipeItem x:Uid="MemPlusSwipeItem"
Background="{ThemeResource SystemControlBackgroundAccentBrush}"
<muxc:SwipeItem Background="{ThemeResource SystemControlBackgroundAccentBrush}"
AutomationProperties.Name="{utils:ResourceString Name=MemPlusSwipeItem/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
IconSource="{StaticResource MemPlusGlyph}"
Invoked="OnMemoryAddSwipeInvoked"/>
<muxc:SwipeItem x:Uid="MemMinusSwipeItem"
Background="{ThemeResource SystemControlBackgroundAccentBrush}"
<muxc:SwipeItem Background="{ThemeResource SystemControlBackgroundAccentBrush}"
AutomationProperties.Name="{utils:ResourceString Name=MemMinusSwipeItem/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
IconSource="{StaticResource MemMinusGlyph}"
Invoked="OnMemorySubtractSwipeInvoked"/>
</muxc:SwipeItems>
@ -70,24 +71,27 @@
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Button x:Uid="ClearMemoryItemButton"
Style="{StaticResource MemoryHoverButtonStyle}"
<Button Style="{StaticResource MemoryHoverButtonStyle}"
AutomationProperties.AutomationId="MClearButton"
AutomationProperties.Name="{utils:ResourceString Name=ClearMemoryItemButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Click="OnClearButtonClicked"
Content="MC"/>
<Button x:Uid="MemPlusItem"
Grid.Column="1"
Content="MC"
ToolTipService.ToolTip="{utils:ResourceString Name=ClearMemoryItemButton/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}"/>
<Button Grid.Column="1"
Margin="1,0"
Style="{StaticResource MemoryHoverButtonStyle}"
AutomationProperties.AutomationId="MAddButton"
AutomationProperties.Name="{utils:ResourceString Name=MemPlusItem/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Click="OnMemoryAddButtonClicked"
Content="M+"/>
<Button x:Uid="MemMinusItem"
Grid.Column="2"
Content="M+"
ToolTipService.ToolTip="{utils:ResourceString Name=MemPlusItem/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}"/>
<Button Grid.Column="2"
Style="{StaticResource MemoryHoverButtonStyle}"
AutomationProperties.AutomationId="MSubButton"
AutomationProperties.Name="{utils:ResourceString Name=MemMinusItem/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Click="OnMemorySubtractButtonClicked"
Content="M-"/>
Content="M-"
ToolTipService.ToolTip="{utils:ResourceString Name=MemMinusItem/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}"/>
</Grid>
</Grid>
</muxc:SwipeControl>

View file

@ -1,4 +1,4 @@
<UserControl x:Class="CalculatorApp.NumberPad"
<UserControl x:Class="CalculatorApp.NumberPad"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:common="using:CalculatorApp.Common"
@ -7,6 +7,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="using:CalculatorApp"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:utils="using:CalculatorApp.Utils"
x:Name="ControlRoot"
d:DesignHeight="315"
d:DesignWidth="235"
@ -36,84 +37,86 @@
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<controls:CalculatorButton x:Name="Num0Button"
x:Uid="num0Button"
Grid.Row="3"
Grid.Column="1"
Style="{x:Bind Path=ButtonStyle, Mode=OneWay}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=num0Button/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="num0Button"
AutomationProperties.Name="{utils:ResourceString Name=num0Button/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Zero"/>
<controls:CalculatorButton x:Name="Num1Button"
x:Uid="num1Button"
Grid.Row="2"
Style="{x:Bind Path=ButtonStyle, Mode=OneWay}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=num1Button/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="num1Button"
AutomationProperties.Name="{utils:ResourceString Name=num1Button/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="One"/>
<controls:CalculatorButton x:Name="Num2Button"
x:Uid="num2Button"
Grid.Row="2"
Grid.Column="1"
Style="{x:Bind Path=ButtonStyle, Mode=OneWay}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=num2Button/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="num2Button"
AutomationProperties.Name="{utils:ResourceString Name=num2Button/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Two"/>
<controls:CalculatorButton x:Name="Num3Button"
x:Uid="num3Button"
Grid.Row="2"
Grid.Column="2"
Style="{x:Bind Path=ButtonStyle, Mode=OneWay}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=num3Button/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="num3Button"
AutomationProperties.Name="{utils:ResourceString Name=num3Button/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Three"/>
<controls:CalculatorButton x:Name="Num4Button"
x:Uid="num4Button"
Grid.Row="1"
Style="{x:Bind Path=ButtonStyle, Mode=OneWay}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=num4Button/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="num4Button"
AutomationProperties.Name="{utils:ResourceString Name=num4Button/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Four"/>
<controls:CalculatorButton x:Name="Num5Button"
x:Uid="num5Button"
Grid.Row="1"
Grid.Column="1"
Style="{x:Bind Path=ButtonStyle, Mode=OneWay}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=num5Button/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="num5Button"
AutomationProperties.Name="{utils:ResourceString Name=num5Button/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Five"/>
<controls:CalculatorButton x:Name="Num6Button"
x:Uid="num6Button"
Grid.Row="1"
Grid.Column="2"
Style="{x:Bind Path=ButtonStyle, Mode=OneWay}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=num6Button/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="num6Button"
AutomationProperties.Name="{utils:ResourceString Name=num6Button/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Six"/>
<controls:CalculatorButton x:Name="Num7Button"
x:Uid="num7Button"
Style="{x:Bind Path=ButtonStyle, Mode=OneWay}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=num7Button/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="num7Button"
AutomationProperties.Name="{utils:ResourceString Name=num7Button/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Seven"/>
<controls:CalculatorButton x:Name="Num8Button"
x:Uid="num8Button"
Grid.Column="1"
Style="{x:Bind Path=ButtonStyle, Mode=OneWay}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=num8Button/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="num8Button"
AutomationProperties.Name="{utils:ResourceString Name=num8Button/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Eight"/>
<controls:CalculatorButton x:Name="Num9Button"
x:Uid="num9Button"
Grid.Column="2"
Style="{x:Bind Path=ButtonStyle, Mode=OneWay}"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=num9Button/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
AutomationProperties.AutomationId="num9Button"
AutomationProperties.Name="{utils:ResourceString Name=num9Button/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Nine"/>
<!--
This is the only button in all of the app that should ever have a explicit reference to KeyboardShortcutManager in Xaml
this is needed because we need to have at least 1 reference from Xaml so the right metadata is generated for the
KeyboardShortcutManager class, otherwise the Xaml will stop parsing and the app won't boot therefore:
DO NOT REMOVE the common:KeyboardShortcutManager.Character from this element, it's value will be overwritten by the
string coming from the RESW file
-->
<controls:CalculatorButton x:Name="DecimalSeparatorButton"
x:Uid="decimalSeparatorButton"
Grid.Row="3"
Grid.Column="2"
Style="{Binding ElementName=ControlRoot, Path=ButtonStyle}"
common:KeyboardShortcutManager.Character="."
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=decimalSeparatorButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.AutomationId="decimalSeparatorButton"
AutomationProperties.Name="{utils:ResourceString Name=decimalSeparatorButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Decimal"
IsEnabled="{Binding IsDecimalEnabled}"/>
</Grid>

View file

@ -6,6 +6,7 @@
xmlns:labs="using:CommunityToolkit.Labs.WinUI"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
xmlns:utils="using:CalculatorApp.Utils"
Loaded="OnLoaded"
Unloaded="OnUnloaded"
mc:Ignorable="d">
@ -54,7 +55,6 @@
</Grid.RowDefinitions>
<Button x:Name="BackButton"
x:Uid="TitleBarBackButton"
Grid.Row="0"
Width="44"
Height="{x:Bind TitleBarHeight.Value, Mode=OneWay}"
@ -62,6 +62,7 @@
Padding="2,0,0,0"
Style="{StaticResource SquareIconButtonStyle}"
FontSize="12"
AutomationProperties.Name="{utils:ResourceString Name=TitleBarBackButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Click="BackButton_Click"
Content="&#xE72B;"/>
@ -71,8 +72,8 @@
HorizontalAlignment="Stretch"
VerticalAlignment="Top">
<TextBlock x:Name="Header"
x:Uid="SettingsHeader"
Style="{StaticResource CategoryNameTextBlockStyle}"/>
Style="{StaticResource CategoryNameTextBlockStyle}"
Text="{utils:ResourceString Name=SettingsHeader/Text}"/>
</Grid>
<ScrollViewer Grid.Row="1"
@ -85,9 +86,9 @@
<EntranceThemeTransition FromVerticalOffset="50" IsStaggeringEnabled="True"/>
<RepositionThemeTransition IsStaggeringEnabled="False"/>
</StackPanel.ChildrenTransitions>
<TextBlock x:Uid="SettingsAppearance"
Style="{StaticResource SettingsCategoryTitleTextBlockStyle}"
AutomationProperties.HeadingLevel="Level1"/>
<TextBlock Style="{StaticResource SettingsCategoryTitleTextBlockStyle}"
AutomationProperties.HeadingLevel="Level1"
Text="{utils:ResourceString Name=SettingsAppearance/Text}"/>
<labs:SettingsExpander x:Name="AppThemeExpander"
Description="Select which app theme to display"
Header="App theme">
@ -100,13 +101,13 @@
Margin="0,-8,0,0"
SelectionChanged="OnThemeSelectionChanged">
<RadioButton x:Name="LightThemeRadioButton"
x:Uid="LightThemeRadioButton"
Content="{utils:ResourceString Name=LightThemeRadioButton/Content}"
Tag="Light"/>
<RadioButton x:Name="DarkThemeRadioButton"
x:Uid="DarkThemeRadioButton"
Content="{utils:ResourceString Name=DarkThemeRadioButton/Content}"
Tag="Dark"/>
<RadioButton x:Name="SystemThemeRadioButton"
x:Uid="SystemThemeRadioButton"
Content="{utils:ResourceString Name=SystemThemeRadioButton/Content}"
Tag="Default"/>
</muxc:RadioButtons>
</labs:SettingsCard>
@ -114,9 +115,9 @@
</labs:SettingsExpander>
<TextBlock x:Name="AboutGroupTitle"
x:Uid="AboutGroupTitle"
Style="{ThemeResource SettingsCategoryTitleTextBlockStyle}"
AutomationProperties.HeadingLevel="Level1"/>
AutomationProperties.HeadingLevel="Level1"
Text="{utils:ResourceString Name=AboutGroupTitle/Text}"/>
<labs:SettingsExpander x:Name="AboutExpander">
<labs:SettingsExpander.HeaderIcon>
<BitmapIcon AutomationProperties.AccessibilityView="Raw" UriSource="ms-appx:///Assets/CalculatorAppList.png"/>
@ -134,8 +135,8 @@
Padding="0"
NavigateUri="https://go.microsoft.com/fwlink/?LinkID=529064"
ToolTipService.ToolTip="https://go.microsoft.com/fwlink/?LinkID=529064">
<TextBlock x:Uid="AboutEULA"
FontSize="{ThemeResource BodyFontSize}"
<TextBlock FontSize="{ThemeResource BodyFontSize}"
Text="{utils:ResourceString Name=AboutEULA/Text}"
TextWrapping="Wrap"/>
</HyperlinkButton>
@ -143,8 +144,8 @@
Padding="0"
NavigateUri="https://go.microsoft.com/fwlink/?LinkID=822631"
ToolTipService.ToolTip="https://go.microsoft.com/fwlink/?LinkID=822631">
<TextBlock x:Uid="AboutControlServicesAgreement"
FontSize="{ThemeResource BodyFontSize}"
<TextBlock FontSize="{ThemeResource BodyFontSize}"
Text="{utils:ResourceString Name=AboutControlServicesAgreement/Text}"
TextWrapping="Wrap"/>
</HyperlinkButton>
@ -152,8 +153,8 @@
Padding="0"
NavigateUri="https://go.microsoft.com/fwlink/?LinkID=521839"
ToolTipService.ToolTip="https://go.microsoft.com/fwlink/?LinkID=521839">
<TextBlock x:Uid="AboutControlPrivacyStatement"
FontSize="{ThemeResource BodyFontSize}"
<TextBlock FontSize="{ThemeResource BodyFontSize}"
Text="{utils:ResourceString Name=AboutControlPrivacyStatement/Text}"
TextWrapping="Wrap"/>
</HyperlinkButton>
</StackPanel>
@ -162,13 +163,13 @@
</labs:SettingsExpander>
<HyperlinkButton x:Name="FeedbackButton"
x:Uid="FeedbackButton"
MinWidth="120"
Margin="-12,4,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
FontSize="{StaticResource BodyFontSize}"
Click="FeedbackButton_Click"/>
Click="FeedbackButton_Click"
Content="{utils:ResourceString Name=FeedbackButton/Content}"/>
<RichTextBlock x:Name="AboutContribute"
Grid.Row="2"

View file

@ -7,6 +7,7 @@
xmlns:designdata="using:CalculatorApp.DesignData"
xmlns:local="using:CalculatorApp"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:utils="using:CalculatorApp.Utils"
xmlns:vm="using:CalculatorApp.ViewModel"
d:DesignHeight="300"
d:DesignWidth="400"
@ -89,13 +90,12 @@
</UserControl.Resources>
<StackPanel>
<TextBlock x:Uid="SupplementaryResultsHeader"
Margin="16,0,0,-6"
<TextBlock Margin="16,0,0,-6"
HorizontalAlignment="Left"
Style="{ThemeResource CaptionTextBlockStyle}"
Foreground="{ThemeResource SystemControlPageTextBaseMediumBrush}"
IsTextScaleFactorEnabled="False"
Text="Also equal to"/>
Text="{utils:ResourceString Name=SupplementaryResultsHeader/Text}"/>
<controls:SupplementaryItemsControl x:Name="SupplementaryValues"
MinHeight="27"
HorizontalAlignment="Left"

View file

@ -3,6 +3,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:utils="using:CalculatorApp.Utils"
Height="32"
mc:Ignorable="d">
<Grid x:Name="LayoutRoot"
@ -73,7 +74,6 @@
</Grid>
</Grid>
<Button x:Name="ExitAlwaysOnTopButton"
x:Uid="ExitAlwaysOnTopButton"
Width="46"
Height="Auto"
HorizontalAlignment="Left"
@ -84,8 +84,10 @@
FontSize="14"
FontWeight="Thin"
AutomationProperties.AutomationId="ExitAlwaysOnTopButton"
AutomationProperties.Name="{utils:ResourceString Name=ExitAlwaysOnTopButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
Click="AlwaysOnTopButton_Click"
Content="&#xEE47;"
ToolTipService.ToolTip="{utils:ResourceString Name=ExitAlwaysOnTopButton/[using:Windows.UI.Xaml.Controls]ToolTipService/ToolTip}"
Visibility="Collapsed"
x:Load="False">
<Button.KeyboardAccelerators>

View file

@ -12,6 +12,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
xmlns:triggers="using:CalculatorApp.Views.StateTriggers"
xmlns:utils="using:CalculatorApp.Utils"
xmlns:vm="using:CalculatorApp.ViewModel"
d:DesignHeight="658"
d:DesignWidth="830"
@ -663,12 +664,12 @@
Visibility="Collapsed">
<StackPanel Orientation="Horizontal">
<HyperlinkButton x:Name="CurrencyRefreshBlock"
x:Uid="RefreshButtonText"
Margin="16,4,0,0"
Padding="0"
Foreground="{ThemeResource AccentTextFillColorPrimaryBrush}"
BorderThickness="0"
Click="CurrencyRefreshButton_Click">
Click="CurrencyRefreshButton_Click"
Content="{utils:ResourceString Name=RefreshButtonText/Content}">
<HyperlinkButton.Resources>
<ResourceDictionary>
<StaticResource x:Key="HyperlinkButtonBackgroundPointerOver" ResourceKey="SubtleFillColorTransparentBrush"/>
@ -677,8 +678,7 @@
</HyperlinkButton.Resources>
</HyperlinkButton>
<TextBlock Margin="3,6,0,0" Style="{ThemeResource CaptionTextBlockStyle}">
<Run x:Name="CurrencySecondaryStatus"
Text=""/>
<Run x:Name="CurrencySecondaryStatus" Text=""/>
</TextBlock>
</StackPanel>
</ContentControl>
@ -724,50 +724,54 @@
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid x:Uid="DisplayControls"
Grid.Row="0"
<Grid Grid.Row="0"
Grid.Column="1"
Grid.ColumnSpan="2"
AutomationProperties.HeadingLevel="Level1">
AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{utils:ResourceString Name=DisplayControls/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<controls:CalculatorButton x:Name="ClearEntryButtonPos0"
x:Uid="clearEntryButton"
HorizontalAlignment="Stretch"
Style="{StaticResource OperatorButtonStyle}"
FontSize="14"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=clearEntryButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.Name="{utils:ResourceString Name=clearEntryButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Clear"
Content="CE"
TabIndex="7"/>
<controls:CalculatorButton x:Name="BackSpaceButtonSmall"
x:Uid="backSpaceButton"
Grid.Column="1"
Style="{StaticResource SymbolOperatorButtonStyle}"
FontSize="14"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=backSpaceButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.Name="{utils:ResourceString Name=backSpaceButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Backspace"
Content="&#xE94F;"
TabIndex="8"/>
</Grid>
<local:NumberPad x:Name="NumberPad"
x:Uid="NumberPad"
Grid.Row="1"
Grid.RowSpan="4"
Grid.Column="0"
Grid.ColumnSpan="3"
VerticalAlignment="Stretch"
AutomationProperties.HeadingLevel="Level1"
AutomationProperties.Name="{utils:ResourceString Name=NumberPad/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonStyle="{StaticResource NumericButtonStyle18}"
TabIndex="10"
TabNavigation="Local"/>
<controls:CalculatorButton x:Name="ConverterNegateButton"
x:Uid="converterNegateButton"
Grid.Row="4"
Grid.Column="0"
Style="{StaticResource SymbolOperatorKeypadButtonStyle}"
FontSize="16"
common:KeyboardShortcutManager.Character="{utils:ResourceString Name=converterNegateButton/[using:CalculatorApp.Common]KeyboardShortcutManager/Character}"
common:KeyboardShortcutManager.VirtualKey="{utils:ResourceVirtualKey Name=converterNegateButton/[using:CalculatorApp.Common]KeyboardShortcutManager/VirtualKey}"
AutomationProperties.Name="{utils:ResourceString Name=converterNegateButton/[using:Windows.UI.Xaml.Automation]AutomationProperties/Name}"
ButtonId="Negate"
Content="&#xF898;"
TabIndex="6"