mirror of
https://github.com/Microsoft/calculator.git
synced 2025-08-22 06:13:14 -07:00
Added comments and organized resources for superior readability
Using comments and grouping DataTemplates, Styles and other resources significantly increases the readability and discovery of resources.
This commit is contained in:
parent
e25bc6783c
commit
265feaa1eb
1 changed files with 155 additions and 134 deletions
|
@ -13,7 +13,29 @@
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d">
|
||||||
|
|
||||||
<UserControl.Resources>
|
<UserControl.Resources>
|
||||||
<automation:NarratorNotifier x:Name="NarratorNotifier" Announcement="{x:Bind Model.Announcement, Mode=OneWay}"/>
|
<!-- DataTemplates -->
|
||||||
|
|
||||||
|
<DataTemplate x:Key="Operand" x:DataType="common:DisplayExpressionToken">
|
||||||
|
<TextBlock Margin="2,0,0,0"
|
||||||
|
Foreground="{ThemeResource SystemControlPageTextBaseMediumBrush}"
|
||||||
|
IsTextScaleFactorEnabled="False"
|
||||||
|
Text="{Binding Token, Mode=OneWay}"/>
|
||||||
|
</DataTemplate>
|
||||||
|
|
||||||
|
<DataTemplate x:Key="Operator" x:DataType="common:DisplayExpressionToken">
|
||||||
|
<TextBlock Margin="2,0,0,0"
|
||||||
|
Foreground="{ThemeResource SystemControlPageTextBaseMediumBrush}"
|
||||||
|
IsTextScaleFactorEnabled="False"
|
||||||
|
Text="{Binding Token, Mode=OneWay}"/>
|
||||||
|
</DataTemplate>
|
||||||
|
|
||||||
|
<DataTemplate x:Key="Separator" x:DataType="common:DisplayExpressionToken">
|
||||||
|
<TextBlock x:Name="MainText"
|
||||||
|
IsTextScaleFactorEnabled="False"
|
||||||
|
Text="{Binding Token, Mode=OneWay}"/>
|
||||||
|
</DataTemplate>
|
||||||
|
|
||||||
|
<!-- TextBox Styles -->
|
||||||
|
|
||||||
<Style x:Key="OperandTextBoxStyle" TargetType="controls:OperandTextBox">
|
<Style x:Key="OperandTextBoxStyle" TargetType="controls:OperandTextBox">
|
||||||
<Setter Property="MinWidth" Value="32"/>
|
<Setter Property="MinWidth" Value="32"/>
|
||||||
|
@ -114,139 +136,6 @@
|
||||||
</Setter>
|
</Setter>
|
||||||
</Style>
|
</Style>
|
||||||
|
|
||||||
<!-- Used by hidden shortcut buttons -->
|
|
||||||
<x:Int32 x:Key="Zero">0</x:Int32>
|
|
||||||
|
|
||||||
<DataTemplate x:Key="Operand" x:DataType="common:DisplayExpressionToken">
|
|
||||||
<TextBlock Margin="2,0,0,0"
|
|
||||||
Foreground="{ThemeResource SystemControlPageTextBaseMediumBrush}"
|
|
||||||
IsTextScaleFactorEnabled="False"
|
|
||||||
Text="{Binding Token, Mode=OneWay}"/>
|
|
||||||
</DataTemplate>
|
|
||||||
|
|
||||||
<DataTemplate x:Key="Operator" x:DataType="common:DisplayExpressionToken">
|
|
||||||
<TextBlock Margin="2,0,0,0"
|
|
||||||
Foreground="{ThemeResource SystemControlPageTextBaseMediumBrush}"
|
|
||||||
IsTextScaleFactorEnabled="False"
|
|
||||||
Text="{Binding Token, Mode=OneWay}"/>
|
|
||||||
</DataTemplate>
|
|
||||||
|
|
||||||
<DataTemplate x:Key="Separator" x:DataType="common:DisplayExpressionToken">
|
|
||||||
<TextBlock x:Name="MainText"
|
|
||||||
IsTextScaleFactorEnabled="False"
|
|
||||||
Text="{Binding Token, Mode=OneWay}"/>
|
|
||||||
</DataTemplate>
|
|
||||||
|
|
||||||
<Style x:Key="ExpressionBaseContainerStyle" TargetType="ListViewItem">
|
|
||||||
<Setter Property="Background" Value="Transparent"/>
|
|
||||||
<Setter Property="Margin" Value="0"/>
|
|
||||||
<Setter Property="MinWidth" Value="0"/>
|
|
||||||
<Setter Property="MinHeight" Value="0"/>
|
|
||||||
<Setter Property="HorizontalAlignment" Value="Center"/>
|
|
||||||
<Setter Property="VerticalAlignment" Value="Stretch"/>
|
|
||||||
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
|
|
||||||
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
|
||||||
<Setter Property="Template">
|
|
||||||
<Setter.Value>
|
|
||||||
<ControlTemplate TargetType="ListViewItem">
|
|
||||||
<ListViewItemPresenter Padding="0"
|
|
||||||
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
|
|
||||||
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
|
|
||||||
ContentMargin="0"
|
|
||||||
DisabledOpacity="{ThemeResource ListViewItemDisabledThemeOpacity}"
|
|
||||||
DragOpacity="{ThemeResource ListViewItemDragThemeOpacity}"
|
|
||||||
PointerOverBackground="{ThemeResource SystemControlHighlightListAccentLowBrush}"
|
|
||||||
PointerOverBackgroundMargin="0"
|
|
||||||
SelectedBackground="{ThemeResource SystemControlBackgroundAccentBrush}"
|
|
||||||
SelectedBorderThickness="0"
|
|
||||||
SelectedForeground="{ThemeResource SystemControlForegroundChromeWhiteBrush}"
|
|
||||||
SelectedPointerOverBackground="{ThemeResource SystemControlHighlightListAccentLowBrush}"
|
|
||||||
SelectedPointerOverBorderBrush="Transparent"
|
|
||||||
SelectionCheckMarkVisualEnabled="False"/>
|
|
||||||
</ControlTemplate>
|
|
||||||
</Setter.Value>
|
|
||||||
</Setter>
|
|
||||||
</Style>
|
|
||||||
|
|
||||||
<Style x:Key="NonEditableOperatorContainerStyle"
|
|
||||||
BasedOn="{StaticResource ExpressionBaseContainerStyle}"
|
|
||||||
TargetType="ListViewItem">
|
|
||||||
<Setter Property="IsHitTestVisible" Value="False"/>
|
|
||||||
<Setter Property="IsTabStop" Value="False"/>
|
|
||||||
<Setter Property="MinWidth" Value="4"/>
|
|
||||||
</Style>
|
|
||||||
|
|
||||||
<Style x:Key="EditableOperatorContainerStyle"
|
|
||||||
BasedOn="{StaticResource ExpressionBaseContainerStyle}"
|
|
||||||
TargetType="ListViewItem">
|
|
||||||
<Setter Property="IsHitTestVisible" Value="True"/>
|
|
||||||
<Setter Property="MinWidth" Value="32"/>
|
|
||||||
</Style>
|
|
||||||
|
|
||||||
<converters:ExpressionItemTemplateSelector x:Key="ExpressionItemTemplateSelector"
|
|
||||||
OperandTemplate="{StaticResource Operand}"
|
|
||||||
OperatorTemplate="{StaticResource Operator}"
|
|
||||||
SeparatorTemplate="{StaticResource Separator}"/>
|
|
||||||
|
|
||||||
<converters:ExpressionItemContainerStyle x:Key="ExpressionItemContainerStyle"
|
|
||||||
EditableOperatorStyle="{StaticResource NonEditableOperatorContainerStyle}"
|
|
||||||
NonEditableOperatorStyle="{StaticResource NonEditableOperatorContainerStyle}"
|
|
||||||
OperandStyle="{StaticResource NonEditableOperatorContainerStyle}"
|
|
||||||
SeparatorStyle="{StaticResource NonEditableOperatorContainerStyle}"/>
|
|
||||||
|
|
||||||
<Style x:Key="ResultsStyleL"
|
|
||||||
x:Name="ResultsStyleL"
|
|
||||||
BasedOn="{StaticResource CalculationResultStyleL}"
|
|
||||||
TargetType="controls:CalculationResult">
|
|
||||||
<Setter Property="HorizontalContentAlignment" Value="Right"/>
|
|
||||||
<Setter Property="VerticalContentAlignment" Value="Top"/>
|
|
||||||
<Setter Property="FontSize" Value="{StaticResource CalcResultFontSizeL}"/>
|
|
||||||
<Setter Property="MinFontSize" Value="12"/>
|
|
||||||
<Setter Property="IsActive" Value="True"/>
|
|
||||||
<Setter Property="DisplayMargin" Value="0,0,0,0"/>
|
|
||||||
<Setter Property="MaxExpressionHistoryCharacters" Value="51"/>
|
|
||||||
</Style>
|
|
||||||
|
|
||||||
<Style x:Key="ResultsStyleM"
|
|
||||||
x:Name="ResultsStyleM"
|
|
||||||
BasedOn="{StaticResource CalculationResultStyleM}"
|
|
||||||
TargetType="controls:CalculationResult">
|
|
||||||
<Setter Property="HorizontalContentAlignment" Value="Right"/>
|
|
||||||
<Setter Property="VerticalContentAlignment" Value="Top"/>
|
|
||||||
<Setter Property="FontSize" Value="{StaticResource CalcResultFontSizeM}"/>
|
|
||||||
<Setter Property="MinFontSize" Value="12"/>
|
|
||||||
<Setter Property="IsActive" Value="True"/>
|
|
||||||
<Setter Property="DisplayMargin" Value="0,0,0,0"/>
|
|
||||||
<Setter Property="MaxExpressionHistoryCharacters" Value="30"/>
|
|
||||||
</Style>
|
|
||||||
|
|
||||||
<Style x:Key="ResultsStyleS"
|
|
||||||
x:Name="ResultsStyleS"
|
|
||||||
BasedOn="{StaticResource CalculationResultStyleS}"
|
|
||||||
TargetType="controls:CalculationResult">
|
|
||||||
<Setter Property="HorizontalContentAlignment" Value="Right"/>
|
|
||||||
<Setter Property="VerticalContentAlignment" Value="Top"/>
|
|
||||||
<Setter Property="FontSize" Value="{StaticResource CalcResultFontSizeS}"/>
|
|
||||||
<Setter Property="MinFontSize" Value="12"/>
|
|
||||||
<Setter Property="IsActive" Value="True"/>
|
|
||||||
<Setter Property="DisplayMargin" Value="0,0,0,0"/>
|
|
||||||
<Setter Property="MaxExpressionHistoryCharacters" Value="30"/>
|
|
||||||
</Style>
|
|
||||||
|
|
||||||
<Style x:Key="ScrollButtonStyle" TargetType="Button">
|
|
||||||
<Setter Property="BorderThickness" Value="0"/>
|
|
||||||
<Setter Property="Padding" Value="0,0,0,0"/>
|
|
||||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
|
||||||
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
|
||||||
<Setter Property="HorizontalContentAlignment" Value="Center"/>
|
|
||||||
<Setter Property="Width" Value="20"/>
|
|
||||||
<Setter Property="MinWidth" Value="20"/>
|
|
||||||
<Setter Property="MinHeight" Value="24"/>
|
|
||||||
<Setter Property="Foreground" Value="{ThemeResource SystemControlForegroundAccentBrush}"/>
|
|
||||||
<Setter Property="Background" Value="Transparent"/>
|
|
||||||
<Setter Property="Visibility" Value="Collapsed"/>
|
|
||||||
</Style>
|
|
||||||
|
|
||||||
<Style TargetType="controls:OverflowTextBlock">
|
<Style TargetType="controls:OverflowTextBlock">
|
||||||
<Setter Property="HorizontalAlignment" Value="Stretch"/>
|
<Setter Property="HorizontalAlignment" Value="Stretch"/>
|
||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
|
@ -317,6 +206,113 @@
|
||||||
</Setter>
|
</Setter>
|
||||||
</Style>
|
</Style>
|
||||||
|
|
||||||
|
<!-- ListViewItem Styles -->
|
||||||
|
|
||||||
|
<Style x:Key="ExpressionBaseContainerStyle" TargetType="ListViewItem">
|
||||||
|
<Setter Property="Background" Value="Transparent"/>
|
||||||
|
<Setter Property="Margin" Value="0"/>
|
||||||
|
<Setter Property="MinWidth" Value="0"/>
|
||||||
|
<Setter Property="MinHeight" Value="0"/>
|
||||||
|
<Setter Property="HorizontalAlignment" Value="Center"/>
|
||||||
|
<Setter Property="VerticalAlignment" Value="Stretch"/>
|
||||||
|
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
|
||||||
|
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
||||||
|
<Setter Property="Template">
|
||||||
|
<Setter.Value>
|
||||||
|
<ControlTemplate TargetType="ListViewItem">
|
||||||
|
<ListViewItemPresenter Padding="0"
|
||||||
|
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
|
||||||
|
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
|
||||||
|
ContentMargin="0"
|
||||||
|
DisabledOpacity="{ThemeResource ListViewItemDisabledThemeOpacity}"
|
||||||
|
DragOpacity="{ThemeResource ListViewItemDragThemeOpacity}"
|
||||||
|
PointerOverBackground="{ThemeResource SystemControlHighlightListAccentLowBrush}"
|
||||||
|
PointerOverBackgroundMargin="0"
|
||||||
|
SelectedBackground="{ThemeResource SystemControlBackgroundAccentBrush}"
|
||||||
|
SelectedBorderThickness="0"
|
||||||
|
SelectedForeground="{ThemeResource SystemControlForegroundChromeWhiteBrush}"
|
||||||
|
SelectedPointerOverBackground="{ThemeResource SystemControlHighlightListAccentLowBrush}"
|
||||||
|
SelectedPointerOverBorderBrush="Transparent"
|
||||||
|
SelectionCheckMarkVisualEnabled="False"/>
|
||||||
|
</ControlTemplate>
|
||||||
|
</Setter.Value>
|
||||||
|
</Setter>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style x:Key="NonEditableOperatorContainerStyle"
|
||||||
|
BasedOn="{StaticResource ExpressionBaseContainerStyle}"
|
||||||
|
TargetType="ListViewItem">
|
||||||
|
<Setter Property="IsHitTestVisible" Value="False"/>
|
||||||
|
<Setter Property="IsTabStop" Value="False"/>
|
||||||
|
<Setter Property="MinWidth" Value="4"/>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style x:Key="EditableOperatorContainerStyle"
|
||||||
|
BasedOn="{StaticResource ExpressionBaseContainerStyle}"
|
||||||
|
TargetType="ListViewItem">
|
||||||
|
<Setter Property="IsHitTestVisible" Value="True"/>
|
||||||
|
<Setter Property="MinWidth" Value="32"/>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<!-- Calculation Result Styles -->
|
||||||
|
|
||||||
|
<Style x:Key="ResultsStyleL"
|
||||||
|
x:Name="ResultsStyleL"
|
||||||
|
BasedOn="{StaticResource CalculationResultStyleL}"
|
||||||
|
TargetType="controls:CalculationResult">
|
||||||
|
<Setter Property="HorizontalContentAlignment" Value="Right"/>
|
||||||
|
<Setter Property="VerticalContentAlignment" Value="Top"/>
|
||||||
|
<Setter Property="FontSize" Value="{StaticResource CalcResultFontSizeL}"/>
|
||||||
|
<Setter Property="MinFontSize" Value="12"/>
|
||||||
|
<Setter Property="IsActive" Value="True"/>
|
||||||
|
<Setter Property="DisplayMargin" Value="0,0,0,0"/>
|
||||||
|
<Setter Property="MaxExpressionHistoryCharacters" Value="51"/>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style x:Key="ResultsStyleM"
|
||||||
|
x:Name="ResultsStyleM"
|
||||||
|
BasedOn="{StaticResource CalculationResultStyleM}"
|
||||||
|
TargetType="controls:CalculationResult">
|
||||||
|
<Setter Property="HorizontalContentAlignment" Value="Right"/>
|
||||||
|
<Setter Property="VerticalContentAlignment" Value="Top"/>
|
||||||
|
<Setter Property="FontSize" Value="{StaticResource CalcResultFontSizeM}"/>
|
||||||
|
<Setter Property="MinFontSize" Value="12"/>
|
||||||
|
<Setter Property="IsActive" Value="True"/>
|
||||||
|
<Setter Property="DisplayMargin" Value="0,0,0,0"/>
|
||||||
|
<Setter Property="MaxExpressionHistoryCharacters" Value="30"/>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style x:Key="ResultsStyleS"
|
||||||
|
x:Name="ResultsStyleS"
|
||||||
|
BasedOn="{StaticResource CalculationResultStyleS}"
|
||||||
|
TargetType="controls:CalculationResult">
|
||||||
|
<Setter Property="HorizontalContentAlignment" Value="Right"/>
|
||||||
|
<Setter Property="VerticalContentAlignment" Value="Top"/>
|
||||||
|
<Setter Property="FontSize" Value="{StaticResource CalcResultFontSizeS}"/>
|
||||||
|
<Setter Property="MinFontSize" Value="12"/>
|
||||||
|
<Setter Property="IsActive" Value="True"/>
|
||||||
|
<Setter Property="DisplayMargin" Value="0,0,0,0"/>
|
||||||
|
<Setter Property="MaxExpressionHistoryCharacters" Value="30"/>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<!-- Button Styles -->
|
||||||
|
|
||||||
|
<Style x:Key="ScrollButtonStyle" TargetType="Button">
|
||||||
|
<Setter Property="BorderThickness" Value="0"/>
|
||||||
|
<Setter Property="Padding" Value="0,0,0,0"/>
|
||||||
|
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||||
|
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
||||||
|
<Setter Property="HorizontalContentAlignment" Value="Center"/>
|
||||||
|
<Setter Property="Width" Value="20"/>
|
||||||
|
<Setter Property="MinWidth" Value="20"/>
|
||||||
|
<Setter Property="MinHeight" Value="24"/>
|
||||||
|
<Setter Property="Foreground" Value="{ThemeResource SystemControlForegroundAccentBrush}"/>
|
||||||
|
<Setter Property="Background" Value="Transparent"/>
|
||||||
|
<Setter Property="Visibility" Value="Collapsed"/>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<!-- Flyout Styles -->
|
||||||
|
|
||||||
<Style x:Key="MemoryFlyoutStyle" TargetType="FlyoutPresenter">
|
<Style x:Key="MemoryFlyoutStyle" TargetType="FlyoutPresenter">
|
||||||
<Setter Property="MinWidth" Value="200"/>
|
<Setter Property="MinWidth" Value="200"/>
|
||||||
<Setter Property="MaxHeight" Value="2400"/>
|
<Setter Property="MaxHeight" Value="2400"/>
|
||||||
|
@ -378,6 +374,8 @@
|
||||||
</Setter>
|
</Setter>
|
||||||
</Style>
|
</Style>
|
||||||
|
|
||||||
|
<!-- Storyboards -->
|
||||||
|
|
||||||
<Storyboard x:Name="Animate">
|
<Storyboard x:Name="Animate">
|
||||||
<DoubleAnimationUsingKeyFrames Storyboard.TargetName="NumpadPanel" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.ScaleX)">
|
<DoubleAnimationUsingKeyFrames Storyboard.TargetName="NumpadPanel" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.ScaleX)">
|
||||||
<EasingDoubleKeyFrame KeyTime="0" Value="0.92">
|
<EasingDoubleKeyFrame KeyTime="0" Value="0.92">
|
||||||
|
@ -432,9 +430,32 @@
|
||||||
</DoubleAnimationUsingKeyFrames>
|
</DoubleAnimationUsingKeyFrames>
|
||||||
</Storyboard>
|
</Storyboard>
|
||||||
|
|
||||||
|
<!-- Value Converters -->
|
||||||
|
|
||||||
<converters:BooleanToVisibilityNegationConverter x:Key="BooleanToVisibilityNegationConverter"/>
|
<converters:BooleanToVisibilityNegationConverter x:Key="BooleanToVisibilityNegationConverter"/>
|
||||||
|
|
||||||
<converters:BooleanNegationConverter x:Key="BooleanNegationConverter"/>
|
<converters:BooleanNegationConverter x:Key="BooleanNegationConverter"/>
|
||||||
|
|
||||||
|
<!-- DataTemplate Selectors and Style Selectors -->
|
||||||
|
|
||||||
|
<converters:ExpressionItemTemplateSelector x:Key="ExpressionItemTemplateSelector"
|
||||||
|
OperandTemplate="{StaticResource Operand}"
|
||||||
|
OperatorTemplate="{StaticResource Operator}"
|
||||||
|
SeparatorTemplate="{StaticResource Separator}"/>
|
||||||
|
|
||||||
|
<converters:ExpressionItemContainerStyle x:Key="ExpressionItemContainerStyle"
|
||||||
|
EditableOperatorStyle="{StaticResource NonEditableOperatorContainerStyle}"
|
||||||
|
NonEditableOperatorStyle="{StaticResource NonEditableOperatorContainerStyle}"
|
||||||
|
OperandStyle="{StaticResource NonEditableOperatorContainerStyle}"
|
||||||
|
SeparatorStyle="{StaticResource NonEditableOperatorContainerStyle}"/>
|
||||||
|
|
||||||
|
<!-- Miscellaneous Resources -->
|
||||||
|
|
||||||
|
<automation:NarratorNotifier x:Name="NarratorNotifier" Announcement="{x:Bind Model.Announcement, Mode=OneWay}"/>
|
||||||
|
|
||||||
|
<!-- Used by hidden shortcut buttons -->
|
||||||
|
<x:Int32 x:Key="Zero">0</x:Int32>
|
||||||
|
|
||||||
<MenuFlyout x:Key="DisplayContextMenu">
|
<MenuFlyout x:Key="DisplayContextMenu">
|
||||||
<MenuFlyoutItem x:Name="CopyMenuItem"
|
<MenuFlyoutItem x:Name="CopyMenuItem"
|
||||||
x:Uid="CopyMenuItem"
|
x:Uid="CopyMenuItem"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue