快捷键支持

This commit is contained in:
艾竹
2023-02-04 20:21:18 +08:00
parent 285c015e83
commit 5b513370ff
13 changed files with 318 additions and 59 deletions

View File

@@ -27,6 +27,8 @@ namespace AIStudio.Wpf.DiagramDesigner
{
this.Resources.MergedDictionaries.Add(ResourceDictionary);
}
this.Focusable = true;
}
public static readonly DependencyProperty ResourceDictionaryProperty = DependencyProperty.Register(nameof(ResourceDictionary), typeof(ResourceDictionary), typeof(DiagramControl), new UIPropertyMetadata(null, OnResourceDictionaryChanged));
@@ -71,9 +73,7 @@ namespace AIStudio.Wpf.DiagramDesigner
private void DesignerCanvas_Loaded(object sender, RoutedEventArgs e)
{
//DesignerCanvas myDesignerCanvas = sender as DesignerCanvas;
//zoomBox.DesignerCanvas = myDesignerCanvas;
//zoomBox.DesignerCanvas = myDesignerCanvas;
}
private async void ScaleTransform_Changed(object sender, EventArgs e)
@@ -81,5 +81,91 @@ namespace AIStudio.Wpf.DiagramDesigner
await System.Threading.Tasks.Task.Delay(100);
ZoomValue = scale.ScaleX;
}
private IDiagramViewModel DiagramViewModel
{
get
{
return DataContext as IDiagramViewModel;
}
}
protected override void OnPreviewKeyDown(KeyEventArgs e)
{
base.OnPreviewKeyDown(e);
if (DiagramViewModel.DiagramOption.ShortcutOption.SelectAll(e))
{
DiagramViewModel.SelectAllCommand.Execute(null);
e.Handled = true;
return;
}
else if (DiagramViewModel.DiagramOption.ShortcutOption.Copy(e))
{
DiagramViewModel.CopyCommand.Execute(null);
e.Handled = true;
return;
}
else if (DiagramViewModel.DiagramOption.ShortcutOption.Paste(e))
{
DiagramViewModel.PasteCommand.Execute(null);
e.Handled = true;
return;
}
else if (DiagramViewModel.DiagramOption.ShortcutOption.Cut(e))
{
DiagramViewModel.CutCommand.Execute(null);
e.Handled = true;
return;
}
else if (DiagramViewModel.DiagramOption.ShortcutOption.Undo(e))
{
DiagramViewModel.UndoCommand.Execute(null);
e.Handled = true;
return;
}
else if (DiagramViewModel.DiagramOption.ShortcutOption.Redo(e))
{
DiagramViewModel.RedoCommand.Execute(null);
e.Handled = true;
return;
}
else if (DiagramViewModel.DiagramOption.ShortcutOption.Delete(e))
{
DiagramViewModel.DeleteCommand.Execute(null);
e.Handled = true;
return;
}
else if (DiagramViewModel.DiagramOption.ShortcutOption.LeftMove(e))
{
DiagramViewModel.LeftMoveCommand.Execute(null);
e.Handled = true;
return;
}
else if (DiagramViewModel.DiagramOption.ShortcutOption.RightMove(e))
{
DiagramViewModel.RightMoveCommand.Execute(null);
e.Handled = true;
return;
}
else if (DiagramViewModel.DiagramOption.ShortcutOption.UpMove(e))
{
DiagramViewModel.UpMoveCommand.Execute(null);
e.Handled = true;
return;
}
else if (DiagramViewModel.DiagramOption.ShortcutOption.DownMove(e))
{
DiagramViewModel.DownMoveCommand.Execute(null);
e.Handled = true;
return;
}
else if (DiagramViewModel.DiagramOption.ShortcutOption.Group(e))
{
DiagramViewModel.GroupCommand.Execute(null);
e.Handled = true;
return;
}
}
}
}