aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.xaml
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.xaml')
-rw-r--r--Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.xaml119
1 files changed, 119 insertions, 0 deletions
diff --git a/Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.xaml b/Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.xaml
new file mode 100644
index 000000000..4d37ce1fd
--- /dev/null
+++ b/Software/Visual_Studio/Tango.Touch/Controls/TouchNumericTextBox.xaml
@@ -0,0 +1,119 @@
+<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:keyboard="clr-namespace:Tango.Touch.Keyboard"
+ xmlns:components="clr-namespace:Tango.Touch.Components"
+ xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
+ xmlns:localConverters="clr-namespace:Tango.Touch.Converters"
+ xmlns:local="clr-namespace:Tango.Touch.Controls">
+
+ <ResourceDictionary.MergedDictionaries>
+ <ResourceDictionary Source="../Resources/Colors.xaml" />
+ </ResourceDictionary.MergedDictionaries>
+
+ <converters:StringNullOrEmptyToBooleanConverter x:Key="StringNullOrEmptyToBooleanConverter" />
+ <converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
+ <converters:BooleanToVisibilityInverseConverter x:Key="BooleanToVisibilityInverseConverter" />
+ <converters:MathOperatorConverter x:Key="MathOperatorConverter" />
+ <localConverters:NumericTextBoxIntegerConverter x:Key="NumericTextBoxIntegerConverter" />
+ <localConverters:NumericTextBoxDoubleConverter x:Key="NumericTextBoxDoubleConverter" />
+
+ <Style TargetType="{x:Type local:TouchNumericTextBox}">
+ <Setter Property="Foreground" Value="{StaticResource TangoDarkForegroundBrush}"></Setter>
+ <Setter Property="Focusable" Value="False"></Setter>
+ <Setter Property="FocusVisualStyle" Value="{x:Null}"></Setter>
+ <Setter Property="KeyboardMode" Value="Integer"></Setter>
+ <Setter Property="FocusSelectionMode" Value="SelectAll"></Setter>
+ <Setter Property="keyboard:KeyboardView.Mode" Value="{Binding RelativeSource={RelativeSource Self},Path=KeyboardMode}"></Setter>
+ <Setter Property="keyboard:KeyboardView.Action" Value="{Binding RelativeSource={RelativeSource Self},Path=KeyboardAction}"></Setter>
+ <Setter Property="keyboard:KeyboardView.Container" Value="{Binding RelativeSource={RelativeSource Self},Path=KeyboardContainer}"></Setter>
+ <Setter Property="Validation.ErrorTemplate" Value="{x:Null}"></Setter>
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type local:TouchNumericTextBox}">
+ <Border Background="{TemplateBinding Background}"
+ BorderBrush="{TemplateBinding BorderBrush}"
+ BorderThickness="{TemplateBinding BorderThickness}" keyboard:KeyboardView.Container="{TemplateBinding KeyboardContainer}">
+ <DockPanel>
+ <Border DockPanel.Dock="Bottom" Visibility="{Binding RelativeSource={RelativeSource AncestorType=local:TouchNumericTextBox},Path=(Validation.HasError),Converter={StaticResource BooleanToVisibilityConverter}}">
+ <Canvas>
+ <TextBlock FontSize="12" Foreground="{StaticResource TangoValidationErrorBrush}" Margin="0 5 0 0" TextWrapping="Wrap" Text="{Binding RelativeSource={RelativeSource AncestorType=local:TouchNumericTextBox},Path=(Validation.Errors).CurrentItem.ErrorContent}"></TextBlock>
+ </Canvas>
+ </Border>
+ <DockPanel>
+ <Grid DockPanel.Dock="Bottom" Height="2">
+ <Rectangle Height="1" Fill="{StaticResource TangoTextWatermarkBrush}" />
+ <Rectangle Height="2" RenderTransformOrigin="0.5,0.5" >
+ <Rectangle.Style>
+ <Style TargetType="Rectangle">
+ <Setter Property="Fill" Value="{StaticResource TangoPrimaryAccentBrush}"></Setter>
+ <Setter Property="RenderTransform">
+ <Setter.Value>
+ <ScaleTransform ScaleY="1" ScaleX="0" />
+ </Setter.Value>
+ </Setter>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding ElementName=PART_TextBox,Path=IsFocused}" Value="True">
+ <DataTrigger.EnterActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" To="1" Duration="00:00:0.4" />
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.EnterActions>
+ <DataTrigger.ExitActions>
+ <BeginStoryboard>
+ <Storyboard>
+ <DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" To="0" Duration="00:00:0.4" />
+ </Storyboard>
+ </BeginStoryboard>
+ </DataTrigger.ExitActions>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=local:TouchNumericTextBox},Path=(Validation.HasError)}" Value="True">
+ <Setter Property="Fill" Value="{StaticResource TangoValidationErrorBrush}"></Setter>
+ <Setter Property="RenderTransform">
+ <Setter.Value>
+ <ScaleTransform ScaleY="1" ScaleX="1" />
+ </Setter.Value>
+ </Setter>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Rectangle.Style>
+ </Rectangle>
+ </Grid>
+
+ <Grid>
+ <components:Ripple RippleBrush="{StaticResource TangoRippleDarkBrush}" RippleFactor="15">
+ <Grid>
+ <TextBox HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Foreground="{TemplateBinding Foreground}" Padding="0 0 0 4" CaretBrush="{StaticResource TangoPrimaryAccentBrush}" FocusVisualStyle="{x:Null}" x:Name="PART_TextBox" BorderThickness="0" Background="Transparent">
+ <TextBox.Style>
+ <Style TargetType="TextBox">
+ <Setter Property="Opacity" Value="0"></Setter>
+ <Style.Triggers>
+ <Trigger Property="IsFocused" Value="True">
+ <Setter Property="Opacity" Value="1"></Setter>
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+ </TextBox.Style>
+ </TextBox>
+ <TextBlock x:Name="PART_TextDisplay" IsHitTestVisible="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Foreground="{TemplateBinding Foreground}" Padding="0 0 0 4" FocusVisualStyle="{x:Null}" Visibility="{Binding ElementName=PART_TextBox,Path=IsFocused,Converter={StaticResource BooleanToVisibilityInverseConverter}}"></TextBlock>
+ </Grid>
+ </components:Ripple>
+
+
+ </Grid>
+ </DockPanel>
+ </DockPanel>
+ </Border>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ <Style.Triggers>
+ <Trigger Property="HasDecimalPoint" Value="True">
+ <Setter Property="KeyboardMode" Value="Float"></Setter>
+ </Trigger>
+ </Style.Triggers>
+ </Style>
+
+</ResourceDictionary> \ No newline at end of file