快捷键实现

This commit is contained in:
艾竹
2023-02-04 16:51:22 +08:00
parent e8f91abd68
commit 285c015e83
3 changed files with 49 additions and 24 deletions

View File

@@ -106,6 +106,12 @@ namespace AIStudio.Wpf.DiagramDesigner.Demo
new MenuItemViewModel(){Title = "PathAnimation"}, new MenuItemViewModel(){Title = "PathAnimation"},
new MenuItemViewModel(){Title = "LineAnimation"}, new MenuItemViewModel(){Title = "LineAnimation"},
} }
},
new MenuItemViewModel(){Title = "Editor",
Children=new List<MenuItemViewModel>
{
new MenuItemViewModel(){Title = "FlowchartEditor"},
}
}, },
}; };
treeview.ItemsSource = _menus; treeview.ItemsSource = _menus;

View File

@@ -188,6 +188,7 @@ namespace AIStudio.Wpf.DiagramDesigner
public DesignerCanvas() public DesignerCanvas()
{ {
this.Focusable = true;
this.AllowDrop = true; this.AllowDrop = true;
Mediator.Instance.Register(this); Mediator.Instance.Register(this);
@@ -505,7 +506,25 @@ namespace AIStudio.Wpf.DiagramDesigner
{ {
base.OnPreviewKeyDown(e); base.OnPreviewKeyDown(e);
//FFE6E6FA bool executed = true;
var para = e.KeyboardDevice.Modifiers == ModifierKeys.None ? e.Key.ToString() : e.KeyboardDevice.Modifiers.ToString() + "+" + e.Key.ToString();
switch (para)
{
case "Control+A": _viewModel.SelectAllCommand.Execute(null); break;
case "Control+C": _viewModel.CopyCommand.Execute(null); break;
case "Control+V": _viewModel.PasteCommand.Execute(null); break;
case "Control+X": _viewModel.CutCommand.Execute(null); break;
case "Control+Z": _viewModel.UndoCommand.Execute(null); break;
case "Control+Y": _viewModel.RedoCommand.Execute(null); break;
case "Delete": _viewModel.DeleteCommand.Execute(null); break;
case "Left": _viewModel.LeftMoveCommand.Execute(null); break;
case "Right": _viewModel.RightMoveCommand.Execute(null); break;
case "Up": _viewModel.UpMoveCommand.Execute(null); break;
case "Down": _viewModel.DownMoveCommand.Execute(null); break;
default: executed = false; break;
}
e.Handled = executed;
} }
protected override Size MeasureOverride(Size constraint) protected override Size MeasureOverride(Size constraint)

View File

@@ -249,30 +249,30 @@ namespace AIStudio.Wpf.Flowchart.Controls
} }
#endregion #endregion
protected override void OnPreviewKeyDown(KeyEventArgs e) //protected override void OnPreviewKeyDown(KeyEventArgs e)
{ //{
base.OnPreviewKeyDown(e); // base.OnPreviewKeyDown(e);
bool executed = true; // bool executed = true;
var para = e.KeyboardDevice.Modifiers == ModifierKeys.None ? e.Key.ToString() : e.KeyboardDevice.Modifiers.ToString() + "+" + e.Key.ToString(); // var para = e.KeyboardDevice.Modifiers == ModifierKeys.None ? e.Key.ToString() : e.KeyboardDevice.Modifiers.ToString() + "+" + e.Key.ToString();
switch (para) // switch (para)
{ // {
case "Control+A": _diagramViewModel.SelectAllCommand.Execute(null); break; // case "Control+A": _diagramViewModel.SelectAllCommand.Execute(null); break;
case "Control+C": _diagramViewModel.CopyCommand.Execute(null); break; // case "Control+C": _diagramViewModel.CopyCommand.Execute(null); break;
case "Control+V": _diagramViewModel.PasteCommand.Execute(null); break; // case "Control+V": _diagramViewModel.PasteCommand.Execute(null); break;
case "Control+X": _diagramViewModel.CutCommand.Execute(null); break; // case "Control+X": _diagramViewModel.CutCommand.Execute(null); break;
case "Control+Z": _diagramViewModel.UndoCommand.Execute(null); break; // case "Control+Z": _diagramViewModel.UndoCommand.Execute(null); break;
case "Control+Y": _diagramViewModel.RedoCommand.Execute(null); break; // case "Control+Y": _diagramViewModel.RedoCommand.Execute(null); break;
case "Delete": _diagramViewModel.DeleteCommand.Execute(null); break; // case "Delete": _diagramViewModel.DeleteCommand.Execute(null); break;
case "Left": _diagramViewModel.LeftMoveCommand.Execute(null); break; // case "Left": _diagramViewModel.LeftMoveCommand.Execute(null); break;
case "Right": _diagramViewModel.RightMoveCommand.Execute(null); break; // case "Right": _diagramViewModel.RightMoveCommand.Execute(null); break;
case "Up": _diagramViewModel.UpMoveCommand.Execute(null); break; // case "Up": _diagramViewModel.UpMoveCommand.Execute(null); break;
case "Down": _diagramViewModel.DownMoveCommand.Execute(null); break; // case "Down": _diagramViewModel.DownMoveCommand.Execute(null); break;
default: executed = false; break; // default: executed = false; break;
} // }
e.Handled = executed; // e.Handled = executed;
} //}
} }
} }