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">
|
||||
|
||||
<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">
|
||||
<Setter Property="MinWidth" Value="32"/>
|
||||
|
@ -114,139 +136,6 @@
|
|||
</Setter>
|
||||
</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">
|
||||
<Setter Property="HorizontalAlignment" Value="Stretch"/>
|
||||
<Setter Property="Template">
|
||||
|
@ -317,6 +206,113 @@
|
|||
</Setter>
|
||||
</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">
|
||||
<Setter Property="MinWidth" Value="200"/>
|
||||
<Setter Property="MaxHeight" Value="2400"/>
|
||||
|
@ -378,6 +374,8 @@
|
|||
</Setter>
|
||||
</Style>
|
||||
|
||||
<!-- Storyboards -->
|
||||
|
||||
<Storyboard x:Name="Animate">
|
||||
<DoubleAnimationUsingKeyFrames Storyboard.TargetName="NumpadPanel" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.ScaleX)">
|
||||
<EasingDoubleKeyFrame KeyTime="0" Value="0.92">
|
||||
|
@ -432,9 +430,32 @@
|
|||
</DoubleAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
|
||||
<!-- Value Converters -->
|
||||
|
||||
<converters:BooleanToVisibilityNegationConverter x:Key="BooleanToVisibilityNegationConverter"/>
|
||||
|
||||
<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">
|
||||
<MenuFlyoutItem x:Name="CopyMenuItem"
|
||||
x:Uid="CopyMenuItem"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue