mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-04-07 09:46:37 +08:00
可以自定义连接点
This commit is contained in:
@@ -280,7 +280,8 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
sourceConnector = value;
|
||||
connectorsHit.Add(sourceConnector);
|
||||
FullyCreatedConnectorInfo sourceDataItem = sourceConnector.DataContext as FullyCreatedConnectorInfo;
|
||||
|
||||
FullyCreatedConnectorInfo sourceDataItem = sourceConnector.Info;
|
||||
|
||||
|
||||
Rect rectangleBounds = sourceConnector.TransformToVisual(this).TransformBounds(new Rect(sourceConnector.RenderSize));
|
||||
@@ -348,10 +349,9 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
// drag operation we cache the start point
|
||||
rubberbandSelectionStartPoint = e.GetPosition(this);
|
||||
|
||||
IDiagramViewModel vm = (this.DataContext as IDiagramViewModel);
|
||||
if (!(Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)))
|
||||
{
|
||||
vm.ClearSelectedItemsCommand.Execute(null);
|
||||
_viewModel.ClearSelectedItemsCommand.Execute(null);
|
||||
|
||||
}
|
||||
e.Handled = true;
|
||||
@@ -451,11 +451,11 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
|
||||
if (sourceConnector != null)
|
||||
{
|
||||
FullyCreatedConnectorInfo sourceDataItem = sourceConnectorInfo ?? (sourceConnector.DataContext as FullyCreatedConnectorInfo);
|
||||
FullyCreatedConnectorInfo sourceDataItem = sourceConnectorInfo ?? (sourceConnector.Info);
|
||||
if (connectorsHit.Count() == 2)
|
||||
{
|
||||
Connector sinkConnector = connectorsHit.Last();
|
||||
FullyCreatedConnectorInfo sinkDataItem = sinkConnector.DataContext as FullyCreatedConnectorInfo;
|
||||
FullyCreatedConnectorInfo sinkDataItem = sinkConnector.Info;
|
||||
|
||||
int indexOfLastTempConnection = sinkDataItem.DataItem.Root.Items.Count - 1;
|
||||
sinkDataItem.DataItem.Root.DirectRemoveItemCommand.Execute(
|
||||
@@ -562,7 +562,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
DragObject dragObject = e.Data.GetData(typeof(DragObject)) as DragObject;
|
||||
if (dragObject != null)
|
||||
{
|
||||
(DataContext as IDiagramViewModel).ClearSelectedItemsCommand.Execute(null);
|
||||
_viewModel.ClearSelectedItemsCommand.Execute(null);
|
||||
Point position = e.GetPosition(this);
|
||||
DesignerItemViewModelBase itemBase = null;
|
||||
if (dragObject.DesignerItem != null)
|
||||
@@ -589,7 +589,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
foreach (var file in files)
|
||||
{
|
||||
(DataContext as IDiagramViewModel).ClearSelectedItemsCommand.Execute(null);
|
||||
_viewModel.ClearSelectedItemsCommand.Execute(null);
|
||||
Point position = e.GetPosition(this);
|
||||
ImageItemViewModel itemBase = new ImageItemViewModel();
|
||||
itemBase.Icon = file;
|
||||
@@ -599,7 +599,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
|
||||
itemBase.Left = Math.Max(0, position.X - itemBase.ItemWidth / 2);
|
||||
itemBase.Top = Math.Max(0, position.Y - itemBase.ItemHeight / 2);
|
||||
(DataContext as IDiagramViewModel).AddItemCommand.Execute(itemBase);
|
||||
_viewModel.AddItemCommand.Execute(itemBase);
|
||||
}
|
||||
}
|
||||
e.Handled = true;
|
||||
|
||||
Reference in New Issue
Block a user