流程图,单击切换,双击禁用或激活
This commit is contained in:
@@ -59,6 +59,8 @@ namespace XplorePlane.Views
|
|||||||
PipelineListBox.PreviewMouseMove += OnPreviewMouseMove;
|
PipelineListBox.PreviewMouseMove += OnPreviewMouseMove;
|
||||||
PipelineListBox.PreviewMouseLeftButtonUp -= OnPreviewMouseLeftButtonUp;
|
PipelineListBox.PreviewMouseLeftButtonUp -= OnPreviewMouseLeftButtonUp;
|
||||||
PipelineListBox.PreviewMouseLeftButtonUp += OnPreviewMouseLeftButtonUp;
|
PipelineListBox.PreviewMouseLeftButtonUp += OnPreviewMouseLeftButtonUp;
|
||||||
|
PipelineListBox.MouseDoubleClick -= OnMouseDoubleClick;
|
||||||
|
PipelineListBox.MouseDoubleClick += OnMouseDoubleClick;
|
||||||
PipelineListBox.PreviewKeyDown -= OnPreviewKeyDown;
|
PipelineListBox.PreviewKeyDown -= OnPreviewKeyDown;
|
||||||
PipelineListBox.PreviewKeyDown += OnPreviewKeyDown;
|
PipelineListBox.PreviewKeyDown += OnPreviewKeyDown;
|
||||||
}
|
}
|
||||||
@@ -103,7 +105,6 @@ namespace XplorePlane.Views
|
|||||||
|
|
||||||
private void OnPreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
|
private void OnPreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
|
||||||
{
|
{
|
||||||
var vm = DataContext as IPipelineEditorHostViewModel;
|
|
||||||
var clickedNode = FindNodeFromOriginalSource(e.OriginalSource);
|
var clickedNode = FindNodeFromOriginalSource(e.OriginalSource);
|
||||||
|
|
||||||
if (_isInternalDragging)
|
if (_isInternalDragging)
|
||||||
@@ -119,19 +120,32 @@ namespace XplorePlane.Views
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vm == null || clickedNode == null || IsInteractiveChild(e.OriginalSource))
|
if (clickedNode == null || IsInteractiveChild(e.OriginalSource))
|
||||||
{
|
{
|
||||||
ResetDragState();
|
ResetDragState();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 单击只选中,不切换启用状态
|
||||||
PipelineListBox.SelectedItem = clickedNode;
|
PipelineListBox.SelectedItem = clickedNode;
|
||||||
PipelineListBox.Focus();
|
PipelineListBox.Focus();
|
||||||
vm.ToggleOperatorEnabledCommand.Execute(clickedNode);
|
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
ResetDragState();
|
ResetDragState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnMouseDoubleClick(object sender, MouseButtonEventArgs e)
|
||||||
|
{
|
||||||
|
var vm = DataContext as IPipelineEditorHostViewModel;
|
||||||
|
var clickedNode = FindNodeFromOriginalSource(e.OriginalSource);
|
||||||
|
|
||||||
|
if (vm == null || clickedNode == null || IsInteractiveChild(e.OriginalSource))
|
||||||
|
return;
|
||||||
|
|
||||||
|
// 双击切换启用/禁用
|
||||||
|
vm.ToggleOperatorEnabledCommand.Execute(clickedNode);
|
||||||
|
e.Handled = true;
|
||||||
|
}
|
||||||
|
|
||||||
private void OnPreviewKeyDown(object sender, KeyEventArgs e)
|
private void OnPreviewKeyDown(object sender, KeyEventArgs e)
|
||||||
{
|
{
|
||||||
if (e.Key != Key.Delete || DataContext is not IPipelineEditorHostViewModel vm || vm.SelectedNode == null)
|
if (e.Key != Key.Delete || DataContext is not IPipelineEditorHostViewModel vm || vm.SelectedNode == null)
|
||||||
|
|||||||
Reference in New Issue
Block a user