拖拽支持工具栏信息带入

This commit is contained in:
艾竹
2023-08-27 16:02:28 +08:00
parent 476d0c57d3
commit 2ffc7b3e52
3 changed files with 31 additions and 7 deletions

View File

@@ -86,11 +86,11 @@ namespace AIStudio.Wpf.DiagramDesigner
dataObject.Icon = toolBoxData.Icon; dataObject.Icon = toolBoxData.Icon;
dataObject.Text = toolBoxData.Text; dataObject.Text = toolBoxData.Text;
dataObject.ColorViewModel = toolBoxData.ColorViewModel; dataObject.ColorViewModel = toolBoxData.ColorViewModel;
//if (toolBoxData.Addition is DesignerItemViewModelBase designerItemViewModelBase) if (toolBoxData.Addition is DesignerItemViewModelBase designerItemViewModelBase)
//{ {
// dataObject.DesignerItem = designerItemViewModelBase.ToSerializableItem(); dataObject.DesignerItem = designerItemViewModelBase.ToSerializableItem();
//} }
//else else
{ {
dataObject.DesignerItem = toolBoxData.Addition; dataObject.DesignerItem = toolBoxData.Addition;
} }

View File

@@ -6,6 +6,7 @@ using System.Windows.Documents;
using System.Windows.Input; using System.Windows.Input;
using System.Windows.Media; using System.Windows.Media;
using System.Windows.Resources; using System.Windows.Resources;
using AIStudio.Wpf.DiagramDesigner.Helpers;
using AIStudio.Wpf.DiagramDesigner.Models; using AIStudio.Wpf.DiagramDesigner.Models;
using AIStudio.Wpf.DiagramDesigner.ViewModels; using AIStudio.Wpf.DiagramDesigner.ViewModels;
using AIStudio.Wpf.DiagramDesigner.ViewModels.BaseViewModel; using AIStudio.Wpf.DiagramDesigner.ViewModels.BaseViewModel;
@@ -714,6 +715,29 @@ namespace AIStudio.Wpf.DiagramDesigner
} }
_viewModel.AddCommand.Execute(designerItems); _viewModel.AddCommand.Execute(designerItems);
} }
else if (dragObject.DesignerItem is SerializableItem serializableItem)
{
Type type = TypeHelper.GetType(serializableItem.ModelTypeName);
DesignerItemViewModelBase itemBase = Activator.CreateInstance(type, _viewModel, serializableItem, ".json") as DesignerItemViewModelBase;
itemBase.Left = Math.Max(0, position.X - itemBase.GetItemWidth() / 2);
itemBase.Top = Math.Max(0, position.Y - itemBase.GetItemHeight() / 2);
if (dragObject.DesiredSize != null)
{
itemBase.ItemWidth = dragObject.DesiredSize.Value.Width;
itemBase.ItemHeight = dragObject.DesiredSize.Value.Height;
}
if (dragObject.DesiredMinSize != null)
{
itemBase.MinItemWidth = dragObject.DesiredMinSize.Value.Width;
itemBase.MinItemHeight = dragObject.DesiredMinSize.Value.Height;
}
_viewModel.AddCommand.Execute(itemBase);
if (itemBase is BlockDesignerItemViewModel block)
{
(_viewModel as IBlockDiagramViewModel).FinishNearBlock(new System.Collections.Generic.List<BlockDesignerItemViewModel> { block });
}
}
else else
{ {
DesignerItemViewModelBase itemBase = null; DesignerItemViewModelBase itemBase = null;

View File

@@ -24,8 +24,8 @@ namespace AIStudio.Wpf.DiagramDesigner
public ConstParameterItem(ConstParameter viewmodel) public ConstParameterItem(ConstParameter viewmodel)
{ {
Text = viewmodel.Text; Text = viewmodel?.Text;
Value = viewmodel.Value?.ToString(); Value = viewmodel?.Value?.ToString();
} }
} }
} }