ScpProfiler/AxisMappingEntryControl.xaml (139 lines of code) (raw):
<UserControl x:Class="ScpProfiler.AxisMappingEntryControl"
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:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
xmlns:utilities="clr-namespace:ScpControl.Utilities;assembly=ScpControl"
xmlns:core="clr-namespace:ScpControl.Shared.Core;assembly=ScpControl.Shared"
mc:Ignorable="d"
MinHeight="48" MinWidth="600" Width="886">
<UserControl.Resources>
<ObjectDataProvider x:Key="MyCommandTypes" MethodName="GetValuesAndDescriptions"
ObjectType="utilities:EnumExtensions">
<ObjectDataProvider.MethodParameters>
<x:TypeExtension TypeName="core:CommandType" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</UserControl.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="60" />
<ColumnDefinition Width="60" />
<ColumnDefinition Width="180" />
<ColumnDefinition />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="250" />
</Grid.ColumnDefinitions>
<!-- Button Icon -->
<Image Grid.Column="0"
Source="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=IconSource}"
ToolTip="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=IconToolTip}"
Width="48"
HorizontalAlignment="Left"
VerticalAlignment="Top" />
<!-- Button/Axis signal strength -->
<ProgressBar Grid.Column="1"
ToolTip="Signal strength"
VerticalAlignment="Top"
HorizontalAlignment="Stretch"
Height="16" Margin="5,16"
Value="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=ButtonProfile.CurrentValue}" />
<!-- Type of target command -->
<ComboBox Grid.Column="2"
ToolTip="Target command type"
VerticalAlignment="Top"
VerticalContentAlignment="Center"
HorizontalAlignment="Stretch"
Margin="10,9"
ItemsSource="{Binding Source={StaticResource MyCommandTypes}}"
SelectedValue="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=ButtonProfile.MappingTarget.CommandType, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
DisplayMemberPath="Description"
SelectedValuePath="Value"
SelectionChanged="TargetTypeComboBox_OnSelectionChanged"
Height="30" />
<!-- Target command -->
<ComboBox Grid.Column="3"
ToolTip="Action target"
x:Name="TargetCommandComboBox"
VerticalAlignment="Top"
VerticalContentAlignment="Center"
HorizontalAlignment="Stretch"
Margin="10,9"
SelectedIndex="0"
Height="30"
SelectionChanged="TargetCommandComboBox_SelectionChanged" />
<!-- Mapping enabled? -->
<CheckBox Grid.Column="4"
ToolTip="Enable/Disable mapping"
Content="Enabled"
IsChecked="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=ButtonProfile.IsEnabled}"
VerticalAlignment="Top"
VerticalContentAlignment="Center"
HorizontalAlignment="Left" Height="30" Margin="0,9" Width="88" />
<!-- Advanced settings -->
<Expander Grid.Column="5"
Header="Advanced"
IsExpanded="False"
Margin="5"
VerticalAlignment="Top">
<StackPanel Margin="0,5,0,0">
<!-- Turbo -->
<GroupBox>
<!-- Turbo checkbox -->
<GroupBox.Header>
<CheckBox x:Name="TurboCheckBox"
IsChecked="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=ButtonProfile.Turbo.IsEnabled}"
Content="Turbo" />
</GroupBox.Header>
<!-- Turbo settings -->
<Grid IsEnabled="{Binding ElementName=TurboCheckBox, Path=IsChecked}">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="80" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0"
HorizontalAlignment="Right"
VerticalAlignment="Center">
Delay:
</Label>
<Label Grid.Row="1" Grid.Column="0"
HorizontalAlignment="Right"
VerticalAlignment="Center">
Interval:
</Label>
<Label Grid.Row="2" Grid.Column="0"
HorizontalAlignment="Right"
VerticalAlignment="Center">
Release:
</Label>
<xctk:DecimalUpDown Grid.Row="0" Grid.Column="1"
Margin="5"
FormatString="N"
Value="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=ButtonProfile.Turbo.Delay}" />
<xctk:DecimalUpDown Grid.Row="1" Grid.Column="1"
Margin="5"
FormatString="N"
Value="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=ButtonProfile.Turbo.Interval}" />
<xctk:DecimalUpDown Grid.Row="2" Grid.Column="1"
Margin="5"
FormatString="N"
Value="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=ButtonProfile.Turbo.Release}" />
<Label Grid.Row="0" Grid.Column="2"
HorizontalAlignment="Left"
VerticalAlignment="Center">
ms
</Label>
<Label Grid.Row="1" Grid.Column="2"
HorizontalAlignment="Left"
VerticalAlignment="Center">
ms
</Label>
<Label Grid.Row="2" Grid.Column="2"
HorizontalAlignment="Left"
VerticalAlignment="Center">
ms
</Label>
</Grid>
</GroupBox>
</StackPanel>
</Expander>
</Grid>
</UserControl>