<UserControl x:Class="WpfDisplay.Views.ValueSlider"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignWidth="150"
x:Name="valueSlider">
<UserControl.ContextMenu>
<ContextMenu xmlns:md="http://materialdesigninxaml.net/winfx/xaml/themes">
<MenuItem Header="Reset" Icon="🔄" Command="{Binding Path=PlacementTarget.ResetValueCommand, RelativeSource={RelativeSource AncestorType=ContextMenu}}"/>
<MenuItem Header="Animate" Icon="🎬"
Command="{Binding Path=PlacementTarget.InternalAnimateCommand, RelativeSource={RelativeSource AncestorType=ContextMenu}}"/>
<Separator/>
<MenuItem Visibility="{Binding Path=PlacementTarget.ToolTip, RelativeSource={RelativeSource AncestorType=ContextMenu}, Converter={StaticResource nullVisibilityConverter}}"
Height="auto" md:RippleAssist.IsDisabled="True" IsHitTestVisible="False">
<MenuItem.Header>
<StackPanel>
<Label Margin="-10 0" Content="{Binding Path=PlacementTarget.Label, RelativeSource={RelativeSource AncestorType=ContextMenu}}"/>
<ContentPresenter MaxWidth="300" Content="{Binding Path=PlacementTarget.ToolTip, RelativeSource={RelativeSource AncestorType=ContextMenu}}">
<ContentPresenter.Resources>
<DataTemplate DataType="{x:Type sys:String}">
<TextBlock Text="{Binding}" MaxWidth="300" FontFamily="Times New Roman"
TextWrapping="Wrap" TextAlignment="Justify" Margin="8"/>
</DataTemplate>
</ContentPresenter.Resources>
</ContentPresenter>
</StackPanel>
</MenuItem.Header>
</MenuItem>
<MenuItem Visibility="{Binding Path=PlacementTarget.AnimationPath, RelativeSource={RelativeSource AncestorType=ContextMenu}, Converter={StaticResource nullVisibilityConverter}}"
Height="auto" md:RippleAssist.IsDisabled="True">
<MenuItem.Header>
<TextBox Text="{Binding Path=PlacementTarget.AnimationPath, RelativeSource={RelativeSource AncestorType=ContextMenu}}"
IsReadOnly="True" FontFamily="Consolas"
md:HintAssist.Hint="Channel path" Style="{StaticResource MaterialDesignFloatingHintTextBox}" md:TextFieldAssist.DecorationVisibility="Hidden"/>
</MenuItem.Header>
</MenuItem>
</ContextMenu>
</UserControl.ContextMenu>
<StackPanel>
<Grid Visibility="{Binding IsLabelShown, ElementName=valueSlider, Converter={StaticResource betterBooleanToVisibilityConverter}}" d:Visibility="Visible">
<Label IsTabStop="False" VerticalContentAlignment="Center"
Content="{Binding Label, ElementName=valueSlider}" d:Content="Label"/>
<Button x:Name="symbolButton1" HorizontalAlignment="Right" d:Content="*"
IsTabStop="False" Padding="8" ToolTip="Animation keyframe"
Visibility="{Binding AnimationPath, ElementName=valueSlider, Converter={StaticResource nullVisibilityConverter}}" d:Visibility="Visible"
Style="{StaticResource MaterialDesignToolButton }" Foreground="Gray"
Command="{Binding InternalAnimateCommand, ElementName=valueSlider}"/>
</Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<Button
Grid.Column="0"
Padding="10,0,10,0" IsTabStop="False"
Style="{StaticResource MaterialDesignFlatButton }"
Background="#303030"
Click="Down_Click">-</Button>
<Label x:Name="displayLabel" Grid.Column="1"
Content="{Binding Value, ElementName=valueSlider}"
Visibility="{Binding Editing, ElementName=valueSlider, Converter={StaticResource invertBooleanToVisibilityConverter}}"
Background="#303030" Cursor="SizeWE"
IsTabStop="True" Focusable="True" GotKeyboardFocus="valueSlider_GotKeyboardFocus"
HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
PreviewMouseMove="DisplayLabel_MouseMove" PreviewMouseUp="DisplayLabel_MouseUp"/>
<TextBox x:Name="valueEditor" Grid.Column="1"
Text="{Binding Value, ElementName=valueSlider, StringFormat={}{0:0.####}}" d:Text="0.5000"
Visibility="{Binding Editing, ElementName=valueSlider, Converter={StaticResource betterBooleanToVisibilityConverter}}"
HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
MouseDoubleClick="valueEditor_MouseDoubleClick"
PreviewKeyDown="ValueEditor_KeyDown" LostFocus="ValueEditor_LostFocus" LostKeyboardFocus="valueEditor_LostKeyboardFocus"/>
<Button
Grid.Column="2"
Padding="10,0,10,0" IsTabStop="False"
Style="{StaticResource MaterialDesignFlatButton }"
Background="#303030"
Click="Up_Click">+</Button>
<Grid Grid.Column="3" Visibility="{Binding IsLabelShown, ElementName=valueSlider, Converter={StaticResource invertBooleanToVisibilityConverter}}">
<Button x:Name="symbolButton2"
IsTabStop="False" Padding="8" ToolTip="Animation keyframe" d:Content="*"
Visibility="{Binding AnimationPath, ElementName=valueSlider, Converter={StaticResource nullVisibilityConverter}}" d:Visibility="Visible"
Style="{StaticResource MaterialDesignToolButton }" Foreground="Gray"
Command="{Binding InternalAnimateCommand, ElementName=valueSlider}"/>
</Grid>
</Grid>
</StackPanel>
</UserControl>