aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/PropertiesTemplates/SingleGraphTemplate.xaml
blob: 037ae0693ca72f477be26bde55f389420415c3a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<UserControl x:Class="Tango.MachineStudio.Technician.PropertiesTemplates.SingleGraphTemplate"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
              xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls"
             xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
             xmlns:colorPicker="clr-namespace:Tango;assembly=Tango.ColorPicker"
             xmlns:converters="clr-namespace:Tango.MachineStudio.Technician.Converters"
             xmlns:sharedConverters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
             xmlns:items="clr-namespace:Tango.MachineStudio.Technician.TechItems"
             xmlns:local="clr-namespace:Tango.MachineStudio.Technician.PropertiesTemplates"
             mc:Ignorable="d" 
             d:DesignHeight="600" d:DesignWidth="300" d:DataContext="{d:DesignInstance Type=items:SingleGraphItem, IsDesignTimeCreatable=False}">

    <UserControl.Resources>
        <converters:MonitorsToSingleChannleMonitorsConverter x:Key="MonitorsToSingleChannleMonitorsConverter" />
        <sharedConverters:BooleanInverseConverter x:Key="BooleanInverseConverter" />
        <converters:SecondsToTimeSpanConverter x:Key="SecondsToTimeSpanConverter" />

        <Style TargetType="{x:Type TabItem}" BasedOn="{StaticResource {x:Type TabItem}}">
            <Setter Property="mahapps:ControlsHelper.HeaderFontSize" Value="14" />
            <Setter Property="Margin" Value="2" />
        </Style>
    </UserControl.Resources>

    <Grid>
        <StackPanel>
            <GroupBox Header="INPUT">
                <StackPanel>
                    <TextBlock FontSize="10">Selected Input</TextBlock>
                    <ComboBox Margin="0 5 0 0" ItemsSource="{Binding Adapter.TechMonitors,Converter={StaticResource MonitorsToSingleChannleMonitorsConverter}}" SelectedItem="{Binding TechMonitor,Mode=TwoWay}" DisplayMemberPath="Description" />
                </StackPanel>
            </GroupBox>

            <GroupBox Header="GRAPH" Margin="0 10 0 0">
                <StackPanel>
                    <StackPanel Margin="0 10 0 0">
                        <TextBlock HorizontalAlignment="Center" FontWeight="SemiBold" Foreground="Gray">
                            <Run>FIFO CAPACITY:</Run>
                            <Run Text="{Binding Duration,Converter={StaticResource SecondsToTimeSpanConverter},Mode=OneWay,StringFormat='hh\\:mm\\:ss'}"></Run>
                        </TextBlock>
                        <Slider Margin="0 5 0 0" Minimum="1" Maximum="3600" TickFrequency="1" IsSnapToTickEnabled="True" Value="{Binding Duration}"></Slider>

                        <TextBlock FontSize="10" Margin="0 20 0 0">Decimal Places</TextBlock>
                        <mahapps:NumericUpDown Background="Transparent" Margin="0 5 0 0" HasDecimals="False" Minimum="0" Maximum="4" Value="{Binding DecimalPlaces}" HorizontalContentAlignment="Center" Foreground="Gray" />
                    </StackPanel>
                    <StackPanel Margin="0 10" IsEnabled="{Binding UseAutoRange,Converter={StaticResource BooleanInverseConverter}}">
                        <UniformGrid Columns="2" Margin="0 5 0 0" IsEnabled="{Binding UseMinMax}">
                            <StackPanel Margin="0 0 5 0">
                                <TextBlock>Minimum</TextBlock>
                                <mahapps:NumericUpDown HasDecimals="True" HorizontalContentAlignment="Center" BorderBrush="{StaticResource BorderBrushGainsboro}" Foreground="{StaticResource GrayBrush}" Margin="0 5 0 0" Minimum="-1000000" Maximum="1000000" Value="{Binding Min,Mode=TwoWay}"></mahapps:NumericUpDown>
                            </StackPanel>
                            <StackPanel Margin="5 0 0 0">
                                <TextBlock>Maximum</TextBlock>
                                <mahapps:NumericUpDown HasDecimals="True" HorizontalContentAlignment="Center" BorderBrush="{StaticResource BorderBrushGainsboro}" Foreground="{StaticResource GrayBrush}" Margin="0 5 0 0" Minimum="{Binding Min}" Maximum="1000000" Value="{Binding Max,Mode=TwoWay}"></mahapps:NumericUpDown>
                            </StackPanel>
                        </UniformGrid>
                        <Button Margin="0 10 0 0" Command="{Binding ResetMinMaxToDefaultCommand}" Style="{StaticResource MaterialDesignFlatButton}">Set To Default</Button>
                    </StackPanel>

                    <CheckBox IsChecked="{Binding UseAutoRange}">Auto Range</CheckBox>
                    <CheckBox Margin="0 10 0 0" IsChecked="{Binding IsPaused}">Pause</CheckBox>

                    <Button Margin="0 10" Command="{Binding ClearCommand}">CLEAR</Button>
                </StackPanel>
            </GroupBox>

            <GroupBox Header="CSV RECORDING">
                <StackPanel Margin="0 10">
                    <DockPanel>
                        <Button HorizontalAlignment="Left" ToolTip="Record this graph data. When stopped, the data will be saved to a csv file." Command="{Binding ToggleRecordingCommand}">
                            <StackPanel Orientation="Horizontal">
                                <materialDesign:PackIcon VerticalAlignment="Center" Kind="Record" Foreground="{StaticResource RedBrush100}">
                                    <materialDesign:PackIcon.Style>
                                        <Style TargetType="materialDesign:PackIcon">
                                            <Setter Property="Opacity" Value="1"></Setter>
                                            <Style.Triggers>
                                                <DataTrigger Binding="{Binding IsRecording}" Value="True">
                                                    <DataTrigger.EnterActions>
                                                        <BeginStoryboard Name="blink">
                                                            <Storyboard>
                                                                <DoubleAnimationUsingKeyFrames RepeatBehavior="Forever" Storyboard.TargetProperty="Opacity" FillBehavior="Stop">
                                                                    <DiscreteDoubleKeyFrame KeyTime="00:00:00" Value="0" />
                                                                    <DiscreteDoubleKeyFrame KeyTime="00:00:0.5" Value="1" />
                                                                    <DiscreteDoubleKeyFrame KeyTime="00:00:1" Value="1" />
                                                                </DoubleAnimationUsingKeyFrames>
                                                            </Storyboard>
                                                        </BeginStoryboard>
                                                    </DataTrigger.EnterActions>
                                                    <DataTrigger.ExitActions>
                                                        <RemoveStoryboard BeginStoryboardName="blink" />
                                                    </DataTrigger.ExitActions>
                                                </DataTrigger>
                                            </Style.Triggers>
                                        </Style>
                                    </materialDesign:PackIcon.Style>
                                </materialDesign:PackIcon>
                                <TextBlock Margin="10 0 0 0">
                                    <TextBlock.Style>
                                        <Style TargetType="TextBlock">
                                            <Setter Property="Text" Value="Start Recording"></Setter>
                                            <Style.Triggers>
                                                <DataTrigger Binding="{Binding IsRecording}" Value="True">
                                                    <Setter Property="Text" Value="Stop Recording"></Setter>
                                                </DataTrigger>
                                            </Style.Triggers>
                                        </Style>
                                    </TextBlock.Style>
                                </TextBlock>
                            </StackPanel>
                        </Button>

                        <TextBlock DockPanel.Dock="Right" HorizontalAlignment="Center" VerticalAlignment="Center" FontFamily="{StaticResource digital-7}" FontSize="24" Text="{Binding RecordingTime,StringFormat=hh\\:mm\\:ss,TargetNullValue='00:00:00'}"></TextBlock>
                    </DockPanel>
                </StackPanel>
            </GroupBox>

            <GroupBox Margin="0 10 0 0" Header="COLOR">
                <StackPanel>
                    <Viewbox Margin="0 5 0 0">
                        <colorPicker:ColorCanvas SelectedColor="{Binding Color,Mode=TwoWay}" Background="Transparent" />
                    </Viewbox>
                </StackPanel>
            </GroupBox>
        </StackPanel>
    </Grid>
</UserControl>
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
					xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI"
					xmlns:local="clr-namespace:Tango.Touch.Keyboard"
                    xmlns:controls="clr-namespace:Tango.Touch.Controls"
					xmlns:fa="http://schemas.fontawesome.io/icons/">

    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="../Resources/Colors.xaml" />
    </ResourceDictionary.MergedDictionaries>

    <SolidColorBrush x:Key="TransparentBrush" Color="Transparent" />


    <Style TargetType="{x:Type local:TouchKeyboard}">
        <Style.Resources>
            <local:KeyboardModeToVisibilityConverter x:Key="KeyboardModeToVisibilityConverter" />
            <local:KeyboardModeToVisibilityInverseConverter x:Key="KeyboardModeToVisibilityInverseConverter" />
            <local:SpecialKeyDefinitionToWidthConverter x:Key="SpecialKeyDefinitionToWidthConverter" />
            <converters:BooleanToVisibilityInverseConverter x:Key="BooleanToVisibilityInverseConverter" />
            <converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
            <converters:MathOperatorConverter x:Key="MathOperatorConverter" />
        </Style.Resources>

        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type local:TouchKeyboard}">
                    <Grid DataContext="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard}}">

                        <Grid.Resources>

                            <Style x:Key="dark_keyboardButton" TargetType="RepeatButton">
                                <Setter Property="Background" Value="{StaticResource TangoKeyboardKeyDarkBrush}" />
                                <Setter Property="Foreground" Value="{StaticResource TangoKeyboardKeyLightTextBrush}" />
                                <Setter Property="Focusable" Value="False"></Setter>
                                <Setter Property="Stylus.IsPressAndHoldEnabled" Value="False"/>
                                <Setter Property="Template">
                                    <Setter.Value>
                                        <ControlTemplate TargetType="RepeatButton">
                                            <Border BorderThickness="0 0 0 1" BorderBrush="#202020" Background="{TemplateBinding Background}" Margin="4" CornerRadius="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=CharactersCornerRadius}">
                                                <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
                                            </Border>
                                        </ControlTemplate>
                                    </Setter.Value>
                                </Setter>
                                <Style.Triggers>
                                    <Trigger Property="IsEnabled" Value="False">
                                        <Setter Property="Opacity" Value="0.5"></Setter>
                                    </Trigger>
                                    <Trigger Property="RepeatButton.IsPressed" Value="True">
                                        <Setter Property="Background" Value="{StaticResource TangoKeyboardKeyLightBrush}" />
                                        <Setter Property="Foreground" Value="{StaticResource TangoKeyboardKeyDarkTextBrush}" />
                                    </Trigger>
                                    <EventTrigger RoutedEvent="RepeatButton.TouchDown">
                                        <EventTrigger.Actions>
                                            <BeginStoryboard>
                                                <Storyboard>
                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background">
                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TangoKeyboardKeyLightBrush}"></DiscreteObjectKeyFrame>
                                                    </ObjectAnimationUsingKeyFrames>
                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground">
                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TangoKeyboardKeyDarkTextBrush}"></DiscreteObjectKeyFrame>
                                                    </ObjectAnimationUsingKeyFrames>
                                                </Storyboard>
                                            </BeginStoryboard>
                                        </EventTrigger.Actions>
                                    </EventTrigger>
                                    <EventTrigger RoutedEvent="RepeatButton.TouchLeave">
                                        <EventTrigger.Actions>
                                            <BeginStoryboard>
                                                <Storyboard>
                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background">
                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TangoKeyboardKeyDarkBrush}"></DiscreteObjectKeyFrame>
                                                    </ObjectAnimationUsingKeyFrames>
                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground">
                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TangoKeyboardKeyLightTextBrush}"></DiscreteObjectKeyFrame>
                                                    </ObjectAnimationUsingKeyFrames>
                                                </Storyboard>
                                            </BeginStoryboard>
                                        </EventTrigger.Actions>
                                    </EventTrigger>
                                </Style.Triggers>
                            </Style>

                            <Style x:Key="keyboardButton" TargetType="RepeatButton">
                                <Setter Property="Background" Value="{StaticResource TangoKeyboardKeyLightBrush}" />
                                <Setter Property="Foreground" Value="{StaticResource TangoKeyboardKeyDarkTextBrush}" />
                                <Setter Property="Focusable" Value="False"></Setter>
                                <Setter Property="Stylus.IsPressAndHoldEnabled" Value="False"/>
                                <Setter Property="Template">
                                    <Setter.Value>
                                        <ControlTemplate TargetType="RepeatButton">
                                            <Border BorderThickness="0 0 0 1" BorderBrush="#202020" Background="{TemplateBinding Background}" Margin="4" CornerRadius="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=CharactersCornerRadius}">
                                                <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
                                            </Border>
                                        </ControlTemplate>
                                    </Setter.Value>
                                </Setter>
                                <Style.Triggers>
                                    <Trigger Property="IsEnabled" Value="False">
                                        <Setter Property="Opacity" Value="0.5"></Setter>
                                    </Trigger>
                                    <Trigger Property="RepeatButton.IsPressed" Value="True">
                                        <Setter Property="Background" Value="{StaticResource TangoKeyboardKeyDarkBrush}" />
                                        <Setter Property="Foreground" Value="{StaticResource TangoKeyboardKeyLightTextBrush}" />
                                    </Trigger>
                                    <EventTrigger RoutedEvent="RepeatButton.TouchDown">
                                        <EventTrigger.Actions>
                                            <BeginStoryboard>
                                                <Storyboard>
                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background">
                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TangoKeyboardKeyDarkBrush}"></DiscreteObjectKeyFrame>
                                                    </ObjectAnimationUsingKeyFrames>
                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground">
                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TangoKeyboardKeyLightTextBrush}"></DiscreteObjectKeyFrame>
                                                    </ObjectAnimationUsingKeyFrames>
                                                </Storyboard>
                                            </BeginStoryboard>
                                        </EventTrigger.Actions>
                                    </EventTrigger>
                                    <EventTrigger RoutedEvent="RepeatButton.TouchLeave">
                                        <EventTrigger.Actions>
                                            <BeginStoryboard>
                                                <Storyboard>
                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background">
                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TangoKeyboardKeyLightBrush}"></DiscreteObjectKeyFrame>
                                                    </ObjectAnimationUsingKeyFrames>
                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground">
                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TangoKeyboardKeyDarkTextBrush}"></DiscreteObjectKeyFrame>
                                                    </ObjectAnimationUsingKeyFrames>
                                                </Storyboard>
                                            </BeginStoryboard>
                                        </EventTrigger.Actions>
                                    </EventTrigger>
                                </Style.Triggers>
                            </Style>

                            <Style x:Key="emptyButton" TargetType="RepeatButton" BasedOn="{StaticResource keyboardButton}">
                                <Setter Property="Background" Value="Transparent" />
                                <Setter Property="Focusable" Value="False"></Setter>
                                <Setter Property="Stylus.IsPressAndHoldEnabled" Value="False"/>
                                <Setter Property="Template">
                                    <Setter.Value>
                                        <ControlTemplate TargetType="RepeatButton">
                                            <Border Margin="{TemplateBinding Padding}" Background="{TemplateBinding Background}">
                                                <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
                                            </Border>
                                        </ControlTemplate>
                                    </Setter.Value>
                                </Setter>
                                <Style.Triggers>
                                    <Trigger Property="RepeatButton.IsPressed" Value="True">
                                        <Setter Property="Background" Value="Transparent" />
                                        <Setter Property="Foreground" Value="{StaticResource TangoKeyboardKeyLightBrush}" />
                                    </Trigger>
                                    <EventTrigger RoutedEvent="RepeatButton.TouchDown">
                                        <EventTrigger.Actions>
                                            <BeginStoryboard>
                                                <Storyboard>
                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background">
                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TransparentBrush}"></DiscreteObjectKeyFrame>
                                                    </ObjectAnimationUsingKeyFrames>
                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground">
                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TangoKeyboardKeyLightTextBrush}"></DiscreteObjectKeyFrame>
                                                    </ObjectAnimationUsingKeyFrames>
                                                </Storyboard>
                                            </BeginStoryboard>
                                        </EventTrigger.Actions>
                                    </EventTrigger>
                                    <EventTrigger RoutedEvent="RepeatButton.TouchLeave">
                                        <EventTrigger.Actions>
                                            <BeginStoryboard>
                                                <Storyboard>
                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background">
                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TransparentBrush}"></DiscreteObjectKeyFrame>
                                                    </ObjectAnimationUsingKeyFrames>
                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground">
                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TangoKeyboardKeyDarkTextBrush}"></DiscreteObjectKeyFrame>
                                                    </ObjectAnimationUsingKeyFrames>
                                                </Storyboard>
                                            </BeginStoryboard>
                                        </EventTrigger.Actions>
                                    </EventTrigger>
                                </Style.Triggers>
                            </Style>

                            <Style x:Key="normalButton" TargetType="RepeatButton" BasedOn="{StaticResource keyboardButton}">
                                <Setter Property="MinWidth" Value="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=KeySize.Width}"></Setter>
                                <Setter Property="Height" Value="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=KeySize.Height}"></Setter>
                                <Setter Property="Command" Value="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=KeyDefinitionCommand}"></Setter>
                                <Setter Property="CommandParameter" Value="{Binding}"></Setter>
                            </Style>

                            <Style x:Key="numberButton" TargetType="RepeatButton" BasedOn="{StaticResource dark_keyboardButton}">
                                <Setter Property="MinWidth" Value="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=KeySize.Width}"></Setter>
                                <Setter Property="Height" Value="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=KeySize.Height}"></Setter>
                                <Setter Property="Command" Value="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=KeyDefinitionCommand}"></Setter>
                                <Setter Property="CommandParameter" Value="{Binding}"></Setter>
                            </Style>

                            <Style x:Key="specialButton" TargetType="RepeatButton" BasedOn="{StaticResource dark_keyboardButton}">
                                <Setter Property="Width">
                                    <Setter.Value>
                                        <MultiBinding Converter="{StaticResource SpecialKeyDefinitionToWidthConverter}">
                                            <Binding RelativeSource="{RelativeSource AncestorType=local:TouchKeyboard}" Path="KeySize"></Binding>
                                            <Binding Path="ColumnSpan"></Binding>
                                        </MultiBinding>
                                    </Setter.Value>
                                </Setter>
                                <Setter Property="Height" Value="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=KeySize.Height}"></Setter>
                                <Setter Property="Command" Value="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=SpecialKeyDefinitionCommand}"></Setter>
                                <Setter Property="CommandParameter" Value="{Binding}"></Setter>
                                <Setter Property="Template">
                                    <Setter.Value>
                                        <ControlTemplate TargetType="RepeatButton">
                                            <Border BorderThickness="0 0 0 1" BorderBrush="#202020" Background="{TemplateBinding Background}" Margin="4" CornerRadius="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=CharactersCornerRadius}">
                                                <Grid>
                                                    <Viewbox Stretch="Uniform" Width="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=VectorMarkupSize}" Height="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=VectorMarkupSize}">
                                                        <Path Data="{Binding VectorMarkup}" Width="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=VectorMarkupSize}" Height="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=VectorMarkupSize}" Stretch="Uniform">
                                                            <Path.Style>
                                                                <Style TargetType="Path">
                                                                    <Setter Property="Fill" Value="{Binding RelativeSource={RelativeSource AncestorType=RepeatButton},Path=Foreground}"></Setter>
                                                                    <Style.Triggers>
                                                                        <MultiDataTrigger>
                                                                            <MultiDataTrigger.Conditions>
                                                                                <Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=CapsLockMode}" Value="{x:Static local:CapsLockMode.Locked}" />
                                                                                <Condition Binding="{Binding Type}" Value="{x:Static local:SpecialKeyType.CapsLock}" />
                                                                            </MultiDataTrigger.Conditions>
                                                                            <Setter Property="Fill" Value="#47C904"></Setter>
                                                                        </MultiDataTrigger>
                                                                    </Style.Triggers>
                                                                </Style>
                                                            </Path.Style>
                                                        </Path>
                                                    </Viewbox>

                                                    <Ellipse Margin="2" HorizontalAlignment="Right" VerticalAlignment="Top" Width="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=DotsSize}" Height="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=DotsSize}">
                                                        <Ellipse.Style>
                                                            <Style TargetType="Ellipse">
                                                                <Setter Property="Visibility" Value="Collapsed"></Setter>
                                                                <Setter Property="Fill" Value="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=SpecialCharactersForeground}"></Setter>
                                                                <Style.Triggers>
                                                                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=IsCapsLockOn}" Value="True">
                                                                        <Setter Property="Fill" Value="#47C904"></Setter>
                                                                    </DataTrigger>
                                                                    <DataTrigger Binding="{Binding Type}" Value="{x:Static local:SpecialKeyType.CapsLock}">
                                                                        <Setter Property="Visibility" Value="Visible"></Setter>
                                                                    </DataTrigger>
                                                                </Style.Triggers>
                                                            </Style>
                                                        </Ellipse.Style>
                                                    </Ellipse>
                                                </Grid>
                                            </Border>
                                        </ControlTemplate>
                                    </Setter.Value>
                                </Setter>
                            </Style>

                            <Style x:Key="bottomButton" TargetType="RepeatButton" BasedOn="{StaticResource dark_keyboardButton}">
                                <Setter Property="Delay" Value="100000"></Setter>
                                <Setter Property="MinWidth" Value="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=KeySize.Width}"></Setter>
                                <Setter Property="Height" Value="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=KeySize.Height}"></Setter>
                                <Setter Property="Template">
                                    <Setter.Value>
                                        <ControlTemplate TargetType="RepeatButton">
                                            <Border BorderThickness="0 0 0 1" BorderBrush="#202020" Background="{TemplateBinding Background}" Margin="4" CornerRadius="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=CharactersCornerRadius}">
                                                <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
                                            </Border>
                                        </ControlTemplate>
                                    </Setter.Value>
                                </Setter>
                            </Style>

                            <Style x:Key="bottomButtonDots" TargetType="RepeatButton" BasedOn="{StaticResource dark_keyboardButton}">
                                <Setter Property="Delay" Value="100000"></Setter>
                                <Setter Property="MinWidth" Value="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=KeySize.Width}"></Setter>
                                <Setter Property="Height" Value="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=KeySize.Height}"></Setter>
                                <Setter Property="Template">
                                    <Setter.Value>
                                        <ControlTemplate TargetType="RepeatButton">
                                            <Border BorderThickness="0 0 0 1" BorderBrush="#202020" Background="{TemplateBinding Background}" Margin="4" CornerRadius="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=CharactersCornerRadius}">
                                                <Grid>
                                                    <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="2">
                                                        <Ellipse Margin="0 0 2 0" Width="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=DotsSize}" Height="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=DotsSize}" Fill="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=SpecialCharactersForeground}" />
                                                        <Ellipse Margin="0 0 2 0" Width="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=DotsSize}" Height="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=DotsSize}" Fill="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=SpecialCharactersForeground}" />
                                                        <Ellipse Margin="0 0 2 0" Width="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=DotsSize}" Height="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=DotsSize}" Fill="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=SpecialCharactersForeground}" />
                                                    </StackPanel>
                                                    <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
                                                </Grid>
                                            </Border>
                                        </ControlTemplate>
                                    </Setter.Value>
                                </Setter>
                            </Style>

                            <Style x:Key="stretchedButton" TargetType="RepeatButton" BasedOn="{StaticResource keyboardButton}">
                                <Setter Property="MinWidth" Value="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=KeySize.Width}"></Setter>
                                <Setter Property="Height" Value="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=KeySize.Height}"></Setter>
                                <Setter Property="Template">
                                    <Setter.Value>
                                        <ControlTemplate TargetType="RepeatButton">
                                            <Border BorderThickness="0 0 0 1" BorderBrush="#202020" Background="{TemplateBinding Background}" Margin="4" CornerRadius="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=CharactersCornerRadius}">
                                                <ContentPresenter HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
                                            </Border>
                                        </ControlTemplate>
                                    </Setter.Value>
                                </Setter>
                            </Style>

                            <Style x:Key="numericButton" TargetType="RepeatButton" BasedOn="{StaticResource keyboardButton}">
                                <!--<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource Self},Path=ActualWidth,Converter={StaticResource MathOperatorConverter},ConverterParameter='*0.7'}"></Setter>-->
                                <Setter Property="Command" Value="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=NumericKeyCommand}"></Setter>
                                <Setter Property="CommandParameter" Value="{Binding RelativeSource={RelativeSource Self},Path=Tag}"></Setter>
                            </Style>
                        </Grid.Resources>

                        <!--AlphaNumeric-->
                        <Grid x:Name="grid_alphanumeric">
                            <Grid.Style>
                                <Style TargetType="Grid">
                                    <Setter Property="Visibility" Value="Visible"></Setter>
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding Mode}" Value="{x:Static local:TouchKeyboardMode.Integer}">
                                            <Setter Property="Visibility" Value="Collapsed"></Setter>
                                        </DataTrigger>
                                        <DataTrigger Binding="{Binding Mode}" Value="{x:Static local:TouchKeyboardMode.Float}">
                                            <Setter Property="Visibility" Value="Collapsed"></Setter>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </Grid.Style>

                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto"/>
                                <RowDefinition Height="Auto"/>
                                <RowDefinition Height="Auto"/>
                            </Grid.RowDefinitions>

                            <ItemsControl ItemsSource="{Binding NumbersLineDefinition.KeyDefinitions}">
                                <ItemsControl.ItemsPanel>
                                    <ItemsPanelTemplate>
                                        <UniformGrid Columns="{Binding NumbersLineDefinition.KeyDefinitions.Count}"></UniformGrid>
                                    </ItemsPanelTemplate>
                                </ItemsControl.ItemsPanel>
                                <ItemsControl.ItemTemplate>
                                    <DataTemplate>
                                        <RepeatButton Content="{Binding StandardText}" Style="{StaticResource numberButton}"></RepeatButton>
                                    </DataTemplate>
                                </ItemsControl.ItemTemplate>
                            </ItemsControl>

                            <Grid Grid.Row="1">
                                <ItemsControl ItemsSource="{Binding CurrentKeyboardDefinition.KeysLinesDefinitions}">
                                    <ItemsControl.ItemTemplate>
                                        <DataTemplate>
                                            <Grid>
                                                <Grid.ColumnDefinitions>
                                                    <ColumnDefinition Width="Auto" />
                                                    <ColumnDefinition>
                                                        <ColumnDefinition.Style>
                                                            <Style TargetType="ColumnDefinition">
                                                                <Setter Property="Width" Value="Auto"></Setter>
                                                                <Style.Triggers>
                                                                    <MultiDataTrigger>
                                                                        <MultiDataTrigger.Conditions>
                                                                            <Condition Binding="{Binding SpecialLeftKeyDefinitions.Count}" Value="0" />
                                                                            <Condition Binding="{Binding SpecialRightKeyDefinitions.Count}" Value="0" />
                                                                        </MultiDataTrigger.Conditions>
                                                                        <Setter Property="Width" Value="1*"></Setter>
                                                                    </MultiDataTrigger>
                                                                </Style.Triggers>
                                                            </Style>
                                                        </ColumnDefinition.Style>
                                                    </ColumnDefinition>
                                                    <ColumnDefinition>
                                                        <ColumnDefinition.Style>
                                                            <Style TargetType="ColumnDefinition">
                                                                <Setter Property="Width" Value="1*"></Setter>
                                                                <Style.Triggers>
                                                                    <MultiDataTrigger>
                                                                        <MultiDataTrigger.Conditions>
                                                                            <Condition Binding="{Binding SpecialLeftKeyDefinitions.Count}" Value="0" />
                                                                            <Condition Binding="{Binding SpecialRightKeyDefinitions.Count}" Value="0" />
                                                                        </MultiDataTrigger.Conditions>
                                                                        <Setter Property="Width" Value="Auto"></Setter>
                                                                    </MultiDataTrigger>
                                                                </Style.Triggers>
                                                            </Style>
                                                        </ColumnDefinition.Style>
                                                    </ColumnDefinition>
                                                </Grid.ColumnDefinitions>

                                                <ItemsControl ItemsSource="{Binding SpecialLeftKeyDefinitions}" HorizontalAlignment="Left">
                                                    <ItemsControl.ItemsPanel>
                                                        <ItemsPanelTemplate>
                                                            <UniformGrid Rows="1" HorizontalAlignment="Stretch"></UniformGrid>
                                                        </ItemsPanelTemplate>
                                                    </ItemsControl.ItemsPanel>
                                                    <ItemsControl.ItemTemplate>
                                                        <DataTemplate>
                                                            <RepeatButton Style="{StaticResource specialButton}"/>
                                                        </DataTemplate>
                                                    </ItemsControl.ItemTemplate>
                                                </ItemsControl>

                                                <ItemsControl ItemsSource="{Binding SpecialRightKeyDefinitions}" Grid.Column="2" HorizontalAlignment="Right">
                                                    <ItemsControl.ItemsPanel>
                                                        <ItemsPanelTemplate>
                                                            <UniformGrid Rows="1" HorizontalAlignment="Stretch"></UniformGrid>
                                                        </ItemsPanelTemplate>
                                                    </ItemsControl.ItemsPanel>
                                                    <ItemsControl.ItemTemplate>
                                                        <DataTemplate>
                                                            <RepeatButton Style="{StaticResource specialButton}"/>
                                                        </DataTemplate>
                                                    </ItemsControl.ItemTemplate>
                                                </ItemsControl>

                                                <ItemsControl ItemsSource="{Binding KeyDefinitions}" Grid.Column="1">
                                                    <ItemsControl.ItemsPanel>
                                                        <ItemsPanelTemplate>
                                                            <UniformGrid Rows="1" HorizontalAlignment="Center"></UniformGrid>
                                                        </ItemsPanelTemplate>
                                                    </ItemsControl.ItemsPanel>
                                                    <ItemsControl.ItemTemplate>
                                                        <DataTemplate>
                                                            <RepeatButton Style="{StaticResource normalButton}">
                                                                <TextBlock>
                                                                    <TextBlock.Style>
                                                                        <Style TargetType="TextBlock">
                                                                            <Setter Property="Text" Value="{Binding StandardText}"></Setter>
                                                                            <Style.Triggers>
                                                                                <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=IsCapsLockOn}" Value="True">
                                                                                    <Setter Property="Text" Value="{Binding CapsText}"></Setter>
                                                                                </DataTrigger>
                                                                            </Style.Triggers>
                                                                        </Style>
                                                                    </TextBlock.Style>
                                                                </TextBlock>
                                                            </RepeatButton>
                                                        </DataTemplate>
                                                    </ItemsControl.ItemTemplate>
                                                </ItemsControl>
                                            </Grid>
                                        </DataTemplate>
                                    </ItemsControl.ItemTemplate>
                                </ItemsControl>
                            </Grid>

                            <Grid Grid.Row="2">
                                <Grid>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto"/>
                                        <ColumnDefinition Width="Auto"/>
                                        <ColumnDefinition Width="Auto"/>
                                        <ColumnDefinition Width="1*"/>
                                        <ColumnDefinition Width="Auto"/>
                                        <ColumnDefinition Width="Auto"/>
                                        <ColumnDefinition Width="Auto"/>
                                    </Grid.ColumnDefinitions>

                                    <RepeatButton Style="{StaticResource bottomButtonDots}" Command="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=SpecialCharactersCommand}">
                                        <ContentControl>
                                            <ContentControl.Style>
                                                <Style TargetType="ContentControl">
                                                    <Setter Property="Content">
                                                        <Setter.Value>
                                                            <StackPanel Orientation="Horizontal">
                                                                <controls:TouchIcon Icon="ChartBubble" Foreground="{Binding RelativeSource={RelativeSource AncestorType=RepeatButton},Path=Foreground}" Width="10" />
                                                                <TextBlock Margin="5 0 0 0">1#</TextBlock>
                                                            </StackPanel>
                                                        </Setter.Value>
                                                    </Setter>
                                                    <Style.Triggers>
                                                        <DataTrigger Binding="{Binding IsSpecialCharactersOn}" Value="True">
                                                            <Setter Property="Content">
                                                                <Setter.Value>
                                                                    <TextBlock>abc</TextBlock>
                                                                </Setter.Value>
                                                            </Setter>
                                                        </DataTrigger>
                                                    </Style.Triggers>
                                                </Style>
                                            </ContentControl.Style>
                                        </ContentControl>
                                    </RepeatButton>

                                    <RepeatButton Command="{Binding NextLanguageCommand}" Style="{StaticResource bottomButtonDots}" Grid.Column="1" Visibility="{Binding IsSpecialCharactersOn,Converter={StaticResource BooleanToVisibilityInverseConverter}}">
                                        <TextBlock Text="{Binding CurrentKeyboardDefinition.LanguageCode}"></TextBlock>
                                    </RepeatButton>

                                    <RepeatButton Command="{Binding FreeTextCommand}" CommandParameter="/" Grid.Column="2">
                                        <RepeatButton.Style>
                                            <Style TargetType="RepeatButton" BasedOn="{StaticResource bottomButton}">
                                                <Setter Property="Visibility" Value="{Binding IsSpecialCharactersOn,Converter={StaticResource BooleanToVisibilityInverseConverter}}"></Setter>
                                                <Style.Triggers>
                                                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=Mode}" Value="Email">
                                                        <Setter Property="Visibility" Value="Collapsed"></Setter>
                                                    </DataTrigger>
                                                </Style.Triggers>
                                            </Style>
                                        </RepeatButton.Style>
                                        <TextBlock Text="/"></TextBlock>
                                    </RepeatButton>

                                    <RepeatButton Command="{Binding FreeTextCommand}" CommandParameter="@" Grid.Column="2">
                                        <RepeatButton.Style>
                                            <Style TargetType="RepeatButton" BasedOn="{StaticResource bottomButton}">
                                                <Setter Property="Visibility" Value="Collapsed"></Setter>
                                                <Style.Triggers>
                                                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=Mode}" Value="Email">
                                                        <Setter Property="Visibility" Value="Visible"></Setter>
                                                    </DataTrigger>
                                                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=IsSpecialCharactersOn}" Value="True">
                                                        <Setter Property="Visibility" Value="Collapsed"></Setter>
                                                    </DataTrigger>
                                                </Style.Triggers>
                                            </Style>
                                        </RepeatButton.Style>
                                        <TextBlock Text="@"></TextBlock>
                                    </RepeatButton>

                                    <RepeatButton Style="{StaticResource stretchedButton}" Grid.Column="3" Command="{Binding FreeTextCommand}" CommandParameter=" ">
                                        <DockPanel Margin="20 0" Height="10">
                                            <Rectangle VerticalAlignment="Stretch" HorizontalAlignment="Left" Stroke="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=CharactersForeground}" StrokeThickness="1" DockPanel.Dock="Left" />
                                            <Rectangle VerticalAlignment="Stretch" HorizontalAlignment="Right" Stroke="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=CharactersForeground}" StrokeThickness="1" DockPanel.Dock="Right" />
                                            <Rectangle VerticalAlignment="Bottom" HorizontalAlignment="Stretch" Stroke="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=CharactersForeground}" StrokeThickness="1" />
                                        </DockPanel>
                                    </RepeatButton>

                                    <RepeatButton Command="{Binding FreeTextCommand}" CommandParameter="." Style="{StaticResource bottomButtonDots}" Grid.Column="4">
                                        <TextBlock Text="."></TextBlock>
                                    </RepeatButton>

                                    <RepeatButton Command="{Binding FreeTextCommand}" CommandParameter=".com" Grid.Column="5">
                                        <RepeatButton.Style>
                                            <Style TargetType="RepeatButton" BasedOn="{StaticResource bottomButtonDots}">
                                                <Setter Property="Visibility" Value="Collapsed"></Setter>
                                                <Style.Triggers>
                                                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=Mode}" Value="Email">
                                                        <Setter Property="Visibility" Value="Visible"></Setter>
                                                    </DataTrigger>
                                                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=IsSpecialCharactersOn}" Value="True">
                                                        <Setter Property="Visibility" Value="Collapsed"></Setter>
                                                    </DataTrigger>
                                                </Style.Triggers>
                                            </Style>
                                        </RepeatButton.Style>
                                        <TextBlock Text=".com"></TextBlock>
                                    </RepeatButton>

                                    <RepeatButton Style="{StaticResource bottomButton}" Grid.Column="6" Command="{Binding ActionKeyCommand}">
                                        <TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=ActionKeyText}"></TextBlock>
                                    </RepeatButton>
                                </Grid>
                            </Grid>
                        </Grid>
                        <!--AlphaNumeric-->

                        <!--Numeric-->
                        <Grid Height="{Binding ElementName=grid_alphanumeric,Path=ActualHeight}">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="30*" />
                                <ColumnDefinition Width="90*" />
                                <ColumnDefinition Width="30*" />
                            </Grid.ColumnDefinitions>
                            <Grid.Style>
                                <Style TargetType="Grid">
                                    <Setter Property="Visibility" Value="Collapsed"></Setter>
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding Mode}" Value="{x:Static local:TouchKeyboardMode.Integer}">
                                            <Setter Property="Visibility" Value="Visible"></Setter>
                                        </DataTrigger>
                                        <DataTrigger Binding="{Binding Mode}" Value="{x:Static local:TouchKeyboardMode.Float}">
                                            <Setter Property="Visibility" Value="Visible"></Setter>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </Grid.Style>
                            <Grid Grid.Column="1">
                                <UniformGrid Rows="4" Columns="4">
                                    <RepeatButton Style="{StaticResource numericButton}" Tag="1">1</RepeatButton>
                                    <RepeatButton Style="{StaticResource numericButton}" Tag="2">2</RepeatButton>
                                    <RepeatButton Style="{StaticResource numericButton}" Tag="3">3</RepeatButton>
                                    <RepeatButton Style="{StaticResource numericButton}" Tag="'{BACKSPACE}'" Background="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=SpecialCharactersBackground}" Foreground="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=SpecialCharactersForeground}">
                                        <Viewbox Stretch="Uniform" Width="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=VectorMarkupSize}" Height="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=VectorMarkupSize}">
                                            <Path Fill="{Binding RelativeSource={RelativeSource AncestorType=RepeatButton},Path=Foreground}" Data="M561 76.5H178.5c-17.85 0-30.6 7.65-40.8 22.95L0 306l137.7 206.55c10.2 12.75 22.95 22.95 40.8 22.95H561    c28.05 0 51-22.95 51-51v-357C612 99.45 589.05 76.5 561 76.5z M484.5 397.8l-35.7 35.7L357 341.7l-91.8 91.8l-35.7-35.7    l91.8-91.8l-91.8-91.8l35.7-35.7l91.8 91.8l91.8-91.8l35.7 35.7L392.7 306L484.5 397.8z"></Path>
                                        </Viewbox>
                                    </RepeatButton>
                                    <RepeatButton Style="{StaticResource numericButton}" Tag="4">4</RepeatButton>
                                    <RepeatButton Style="{StaticResource numericButton}" Tag="5">5</RepeatButton>
                                    <RepeatButton Style="{StaticResource numericButton}" Tag="6">6</RepeatButton>
                                    <RepeatButton Style="{StaticResource numericButton}" IsEnabled="False"></RepeatButton>
                                    <RepeatButton Style="{StaticResource numericButton}" Tag="7">7</RepeatButton>
                                    <RepeatButton Style="{StaticResource numericButton}" Tag="8">8</RepeatButton>
                                    <RepeatButton Style="{StaticResource numericButton}" Tag="9">9</RepeatButton>
                                    <RepeatButton Style="{StaticResource numericButton}" IsEnabled="False"></RepeatButton>
                                    <RepeatButton Style="{StaticResource numericButton}" Tag="-">-</RepeatButton>
                                    <RepeatButton Style="{StaticResource numericButton}" Tag="0">0</RepeatButton>
                                    <RepeatButton Tag=".">
                                        <RepeatButton.Style>
                                            <Style TargetType="RepeatButton" BasedOn="{StaticResource numericButton}">
                                                <Setter Property="Content" Value=" "></Setter>
                                                <Setter Property="IsEnabled" Value="False"></Setter>
                                                <Style.Triggers>
                                                    <DataTrigger Binding="{Binding Mode}" Value="{x:Static local:TouchKeyboardMode.Float}">
                                                        <Setter Property="Content" Value="."></Setter>
                                                        <Setter Property="IsEnabled" Value="True"></Setter>
                                                    </DataTrigger>
                                                </Style.Triggers>
                                            </Style>
                                        </RepeatButton.Style>
                                    </RepeatButton>
                                    <RepeatButton Style="{StaticResource bottomButton}" Grid.Column="5" Command="{Binding ActionKeyCommand}" Height="{Binding RelativeSource={RelativeSource Self},Path=ActualWidth,Converter={StaticResource MathOperatorConverter},ConverterParameter='*0.7'}">
                                        <TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=local:TouchKeyboard},Path=ActionKeyText}"></TextBlock>
                                    </RepeatButton>
                                </UniformGrid>
                            </Grid>

                            <Grid Grid.Column="2">
                                <UniformGrid Columns="1" Rows="3">
                                    <RepeatButton Background="Transparent" x:Name="PART_JogUp" Style="{StaticResource emptyButton}" Margin="20" Padding="10">
                                        <controls:TouchIcon Icon="ChevronUp" />
                                    </RepeatButton>
                                    <Grid HorizontalAlignment="Center" VerticalAlignment="Center" Width="100" Height="100">
                                        <Ellipse StrokeThickness="10">
                                            <Ellipse.Stroke>
                                                <RadialGradientBrush>
                                                    <GradientStop Color="Black" Offset="0.5"></GradientStop>
                                                    <GradientStop Color="#A8A8A8" Offset="1"></GradientStop>
                                                </RadialGradientBrush>
                                            </Ellipse.Stroke>
                                            <Ellipse.Fill>
                                                <RadialGradientBrush x:Name="PART_Jog_Gradient" Center="0.5,0.5">
                                                    <GradientStop Color="White"/>
                                                    <GradientStop Color="#FF6C6C6C" Offset="0.66"/>
                                                    <GradientStop Color="#FF202020" Offset="1"/>
                                                </RadialGradientBrush>
                                            </Ellipse.Fill>
                                        </Ellipse>
                                        <Thumb x:Name="PART_JoggingThumb" Opacity="0" />
                                    </Grid>
                                    <RepeatButton Background="Transparent" x:Name="PART_JogDown" Style="{StaticResource emptyButton}" Margin="20" Padding="10">
                                        <controls:TouchIcon Icon="ChevronDOwn" />
                                    </RepeatButton>
                                </UniformGrid>
                            </Grid>
                        </Grid>
                        <!--Numeric-->

                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

</ResourceDictionary>