快捷键实现

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 = "LineAnimation"},
}
},
new MenuItemViewModel(){Title = "Editor",
Children=new List<MenuItemViewModel>
{
new MenuItemViewModel(){Title = "FlowchartEditor"},
}
},
};
treeview.ItemsSource = _menus;

View File

@@ -188,6 +188,7 @@ namespace AIStudio.Wpf.DiagramDesigner
public DesignerCanvas()
{
this.Focusable = true;
this.AllowDrop = true;
Mediator.Instance.Register(this);
@@ -505,7 +506,25 @@ namespace AIStudio.Wpf.DiagramDesigner
{
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)

View File

@@ -249,30 +249,30 @@ namespace AIStudio.Wpf.Flowchart.Controls
}
#endregion
protected override void OnPreviewKeyDown(KeyEventArgs e)
{
base.OnPreviewKeyDown(e);
//protected override void OnPreviewKeyDown(KeyEventArgs e)
//{
// base.OnPreviewKeyDown(e);
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": _diagramViewModel.SelectAllCommand.Execute(null); break;
case "Control+C": _diagramViewModel.CopyCommand.Execute(null); break;
case "Control+V": _diagramViewModel.PasteCommand.Execute(null); break;
case "Control+X": _diagramViewModel.CutCommand.Execute(null); break;
case "Control+Z": _diagramViewModel.UndoCommand.Execute(null); break;
case "Control+Y": _diagramViewModel.RedoCommand.Execute(null); break;
case "Delete": _diagramViewModel.DeleteCommand.Execute(null); break;
case "Left": _diagramViewModel.LeftMoveCommand.Execute(null); break;
case "Right": _diagramViewModel.RightMoveCommand.Execute(null); break;
case "Up": _diagramViewModel.UpMoveCommand.Execute(null); break;
case "Down": _diagramViewModel.DownMoveCommand.Execute(null); break;
default: executed = false; break;
}
e.Handled = executed;
}
// 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": _diagramViewModel.SelectAllCommand.Execute(null); break;
// case "Control+C": _diagramViewModel.CopyCommand.Execute(null); break;
// case "Control+V": _diagramViewModel.PasteCommand.Execute(null); break;
// case "Control+X": _diagramViewModel.CutCommand.Execute(null); break;
// case "Control+Z": _diagramViewModel.UndoCommand.Execute(null); break;
// case "Control+Y": _diagramViewModel.RedoCommand.Execute(null); break;
// case "Delete": _diagramViewModel.DeleteCommand.Execute(null); break;
// case "Left": _diagramViewModel.LeftMoveCommand.Execute(null); break;
// case "Right": _diagramViewModel.RightMoveCommand.Execute(null); break;
// case "Up": _diagramViewModel.UpMoveCommand.Execute(null); break;
// case "Down": _diagramViewModel.DownMoveCommand.Execute(null); break;
// default: executed = false; break;
// }
// e.Handled = executed;
//}
}
}