enhance: add IsMouseSelectable property for StepBar (#1142)
close #1142
This commit is contained in:
1 parent
3e7bd22f32
commit
759abff637
6 files changed
+69
-40
No files matched your search
@@ -30,7 +30,22 @@ public class StepBar : ItemsControl
|
||||
{
|
||||
CommandBindings.Add(new CommandBinding(ControlCommands.Next, (s, e) => Next()));
|
||||
CommandBindings.Add(new CommandBinding(ControlCommands.Prev, (s, e) => Prev()));
|
||||
|
||||
ItemContainerGenerator.StatusChanged += ItemContainerGenerator_StatusChanged;
|
||||
AddHandler(SelectableItem.SelectedEvent, new RoutedEventHandler(OnStepBarItemSelected));
|
||||
}
|
||||
|
||||
private void OnStepBarItemSelected(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (!IsMouseSelectable)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (e.OriginalSource is StepBarItem item)
|
||||
{
|
||||
SetCurrentValue(StepIndexProperty, item.Index - 1);
|
||||
}
|
||||
}
|
||||
|
||||
private void ItemContainerGenerator_StatusChanged(object sender, EventArgs e)
|
||||
@@ -151,6 +166,15 @@ public class StepBar : ItemsControl
|
||||
set => SetValue(DockProperty, value);
|
||||
}
|
||||
|
||||
public static readonly DependencyProperty IsMouseSelectableProperty = DependencyProperty.Register(
|
||||
"IsMouseSelectable", typeof(bool), typeof(StepBar), new PropertyMetadata(ValueBoxes.FalseBox));
|
||||
|
||||
public bool IsMouseSelectable
|
||||
{
|
||||
get => (bool) GetValue(IsMouseSelectableProperty);
|
||||
set => SetValue(IsMouseSelectableProperty, ValueBoxes.BooleanBox(value));
|
||||
}
|
||||
|
||||
public override void OnApplyTemplate()
|
||||
{
|
||||
base.OnApplyTemplate();
|
||||
|
||||
Reference in new issue
Block a user