mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-05-04 15:01:29 +08:00
Mind 出发
This commit is contained in:
@@ -124,6 +124,7 @@
|
|||||||
<ProjectReference Include="..\AIStudio.Wpf.DiagramDesigner\AIStudio.Wpf.DiagramDesigner.csproj" />
|
<ProjectReference Include="..\AIStudio.Wpf.DiagramDesigner\AIStudio.Wpf.DiagramDesigner.csproj" />
|
||||||
<ProjectReference Include="..\AIStudio.Wpf.Flowchart\AIStudio.Wpf.Flowchart.csproj" />
|
<ProjectReference Include="..\AIStudio.Wpf.Flowchart\AIStudio.Wpf.Flowchart.csproj" />
|
||||||
<ProjectReference Include="..\AIStudio.Wpf.Logical\AIStudio.Wpf.Logical.csproj" />
|
<ProjectReference Include="..\AIStudio.Wpf.Logical\AIStudio.Wpf.Logical.csproj" />
|
||||||
|
<ProjectReference Include="..\AIStudio.Wpf.Mind\AIStudio.Wpf.Mind.csproj" />
|
||||||
<ProjectReference Include="..\AIStudio.Wpf.SFC\AIStudio.Wpf.SFC.csproj" />
|
<ProjectReference Include="..\AIStudio.Wpf.SFC\AIStudio.Wpf.SFC.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
<ResourceDictionary Source="pack://application:,,,/AIStudio.Wpf.Flowchart;component/Themes/FlowNode.xaml"/>
|
<ResourceDictionary Source="pack://application:,,,/AIStudio.Wpf.Flowchart;component/Themes/FlowNode.xaml"/>
|
||||||
<ResourceDictionary Source="pack://application:,,,/AIStudio.Wpf.Logical;component/Themes/LogicalGateItemViewModel.xaml"/>
|
<ResourceDictionary Source="pack://application:,,,/AIStudio.Wpf.Logical;component/Themes/LogicalGateItemViewModel.xaml"/>
|
||||||
<ResourceDictionary Source="pack://application:,,,/AIStudio.Wpf.SFC;component/Themes/SFCNode.xaml"/>
|
<ResourceDictionary Source="pack://application:,,,/AIStudio.Wpf.SFC;component/Themes/SFCNode.xaml"/>
|
||||||
|
<ResourceDictionary Source="pack://application:,,,/AIStudio.Wpf.Mind;component/Themes/MindNode.xaml"/>
|
||||||
</ResourceDictionary.MergedDictionaries>
|
</ResourceDictionary.MergedDictionaries>
|
||||||
</ResourceDictionary>
|
</ResourceDictionary>
|
||||||
</Application.Resources>
|
</Application.Resources>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ using AIStudio.Wpf.DiagramDesigner;
|
|||||||
|
|
||||||
namespace AIStudio.Wpf.Flowchart
|
namespace AIStudio.Wpf.Flowchart
|
||||||
{
|
{
|
||||||
public class FlowchartViewModel : DiagramsViewModel
|
public class FlowchartViewModel : PageViewModel
|
||||||
{
|
{
|
||||||
public FlowchartViewModel(string title, string status, DiagramType diagramType) : base(title, status, diagramType)
|
public FlowchartViewModel(string title, string status, DiagramType diagramType) : base(title, status, diagramType)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using AIStudio.Wpf.DiagramDesigner;
|
|||||||
|
|
||||||
namespace AIStudio.Wpf.Logical
|
namespace AIStudio.Wpf.Logical
|
||||||
{
|
{
|
||||||
public class LogicalViewModel : DiagramsViewModel
|
public class LogicalViewModel : PageViewModel
|
||||||
{
|
{
|
||||||
public LogicalViewModel(string title, string status, DiagramType diagramType) : base(title, status, diagramType)
|
public LogicalViewModel(string title, string status, DiagramType diagramType) : base(title, status, diagramType)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -29,9 +29,9 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
{
|
{
|
||||||
ToolBoxViewModel = new ToolBoxViewModel();
|
ToolBoxViewModel = new ToolBoxViewModel();
|
||||||
|
|
||||||
DiagramsViewModels = new ObservableCollection<DiagramsViewModel>();
|
DiagramsViewModels = new ObservableCollection<PageViewModel>();
|
||||||
DiagramsViewModels.Add(new DiagramsViewModel("新建-1", "*", DiagramType.Normal));
|
DiagramsViewModels.Add(new PageViewModel("新建-1", "*", DiagramType.Normal));
|
||||||
DiagramsViewModel = DiagramsViewModels.FirstOrDefault();
|
PageViewModel = DiagramsViewModels.FirstOrDefault();
|
||||||
|
|
||||||
StandardColor = GenerateStandardGradients();
|
StandardColor = GenerateStandardGradients();
|
||||||
|
|
||||||
@@ -50,8 +50,8 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
#region 属性
|
#region 属性
|
||||||
public ToolBoxViewModel ToolBoxViewModel { get; private set; }
|
public ToolBoxViewModel ToolBoxViewModel { get; private set; }
|
||||||
|
|
||||||
private ObservableCollection<DiagramsViewModel> _diagramsViewModels;
|
private ObservableCollection<PageViewModel> _diagramsViewModels;
|
||||||
public ObservableCollection<DiagramsViewModel> DiagramsViewModels
|
public ObservableCollection<PageViewModel> DiagramsViewModels
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
@@ -63,8 +63,8 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private DiagramsViewModel _diagramsViewModel;
|
private PageViewModel _diagramsViewModel;
|
||||||
public DiagramsViewModel DiagramsViewModel
|
public PageViewModel PageViewModel
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
@@ -215,14 +215,14 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
public Func<DiagramsViewModel> NewItemFactory
|
public Func<PageViewModel> NewItemFactory
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
() =>
|
() =>
|
||||||
{
|
{
|
||||||
return new DiagramsViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", DiagramType.Normal);
|
return new PageViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", DiagramType.Normal);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -659,7 +659,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
//here's how you can cancel stuff:
|
//here's how you can cancel stuff:
|
||||||
//args.Cancel();
|
//args.Cancel();
|
||||||
|
|
||||||
if (args.DragablzItem.DataContext is DiagramsViewModel viewModel)
|
if (args.DragablzItem.DataContext is PageViewModel viewModel)
|
||||||
{
|
{
|
||||||
viewModel.Dispose();
|
viewModel.Dispose();
|
||||||
}
|
}
|
||||||
@@ -683,22 +683,22 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
RaisePropertyChanged(e.PropertyName);
|
RaisePropertyChanged(e.PropertyName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (DiagramsViewModel == null) return;
|
if (PageViewModel == null) return;
|
||||||
|
|
||||||
if (sender is IFontViewModel)
|
if (sender is IFontViewModel)
|
||||||
DiagramsViewModel.SetFont(sender as IFontViewModel, e.PropertyName);
|
PageViewModel.SetFont(sender as IFontViewModel, e.PropertyName);
|
||||||
|
|
||||||
if (sender is IColorViewModel)
|
if (sender is IColorViewModel)
|
||||||
DiagramsViewModel.SetColor(sender as IColorViewModel, e.PropertyName);
|
PageViewModel.SetColor(sender as IColorViewModel, e.PropertyName);
|
||||||
|
|
||||||
if (sender is IShapeViewModel)
|
if (sender is IShapeViewModel)
|
||||||
DiagramsViewModel.SetSharp(sender as IShapeViewModel, e.PropertyName);
|
PageViewModel.SetSharp(sender as IShapeViewModel, e.PropertyName);
|
||||||
|
|
||||||
if (sender is IQuickThemeViewModel)
|
if (sender is IQuickThemeViewModel)
|
||||||
DiagramsViewModel.SetQuickItem(sender as IQuickThemeViewModel, e.PropertyName);
|
PageViewModel.SetQuickItem(sender as IQuickThemeViewModel, e.PropertyName);
|
||||||
|
|
||||||
if (sender is LockObject)
|
if (sender is LockObject)
|
||||||
DiagramsViewModel.LockAction(sender as LockObject, e.PropertyName);
|
PageViewModel.LockAction(sender as LockObject, e.PropertyName);
|
||||||
|
|
||||||
if (sender is DesignerItemViewModelBase designer
|
if (sender is DesignerItemViewModelBase designer
|
||||||
&& (e.PropertyName == nameof(designer.Angle)
|
&& (e.PropertyName == nameof(designer.Angle)
|
||||||
@@ -707,14 +707,14 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
|| e.PropertyName == nameof(designer.ScaleX)
|
|| e.PropertyName == nameof(designer.ScaleX)
|
||||||
|| e.PropertyName == nameof(designer.ScaleY)))
|
|| e.PropertyName == nameof(designer.ScaleY)))
|
||||||
{
|
{
|
||||||
DiagramsViewModel.SetPropertyValue(designer, e.PropertyName);
|
PageViewModel.SetPropertyValue(designer, e.PropertyName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public bool KeyExecuted(KeyEventArgs e)
|
public bool KeyExecuted(KeyEventArgs e)
|
||||||
{
|
{
|
||||||
if (DiagramsViewModel?.DiagramViewModel?.ExecuteShortcut(e) == true)
|
if (PageViewModel?.DiagramViewModel?.ExecuteShortcut(e) == true)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -734,17 +734,17 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
|
|
||||||
private void UnDoExecuted()
|
private void UnDoExecuted()
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.UndoCommand.Execute(null);
|
PageViewModel?.DiagramViewModel?.UndoCommand.Execute(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ReDoExecuted()
|
private void ReDoExecuted()
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.RedoCommand.Execute(null);
|
PageViewModel?.DiagramViewModel?.RedoCommand.Execute(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SelectedAllExecuted()
|
private void SelectedAllExecuted()
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.SelectAllCommand.Execute(null);
|
PageViewModel?.DiagramViewModel?.SelectAllCommand.Execute(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OpenExecuted(string para = null)
|
private void OpenExecuted(string para = null)
|
||||||
@@ -771,13 +771,13 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
var viewmodel = DiagramsViewModels.FirstOrDefault(p => p.FileName == filename);
|
var viewmodel = DiagramsViewModels.FirstOrDefault(p => p.FileName == filename);
|
||||||
if (viewmodel != null)
|
if (viewmodel != null)
|
||||||
{
|
{
|
||||||
DiagramsViewModel = viewmodel;
|
PageViewModel = viewmodel;
|
||||||
MessageBox.Show("文档已经打开");
|
MessageBox.Show("文档已经打开");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var diagram = DiagramsViewModel.OpenFile(filename, Path.GetExtension(filename));
|
var diagram = PageViewModel.OpenFile(filename, Path.GetExtension(filename));
|
||||||
DiagramsViewModel flow;
|
PageViewModel flow;
|
||||||
if (diagram.DiagramType == DiagramType.FlowChart)
|
if (diagram.DiagramType == DiagramType.FlowChart)
|
||||||
{
|
{
|
||||||
flow = new FlowchartViewModel(filename, diagram);
|
flow = new FlowchartViewModel(filename, diagram);
|
||||||
@@ -792,14 +792,14 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
flow = new DiagramsViewModel(filename, diagram);
|
flow = new PageViewModel(filename, diagram);
|
||||||
}
|
}
|
||||||
DiagramsViewModels.Add(flow);
|
DiagramsViewModels.Add(flow);
|
||||||
DiagramsViewModel = flow;
|
PageViewModel = flow;
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(para))
|
if (string.IsNullOrEmpty(para))
|
||||||
{
|
{
|
||||||
SaveHistory(DiagramsViewModel);
|
SaveHistory(PageViewModel);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -810,39 +810,39 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
|
|
||||||
private void SaveExecuted()
|
private void SaveExecuted()
|
||||||
{
|
{
|
||||||
if (DiagramsViewModel == null) return;
|
if (PageViewModel == null) return;
|
||||||
|
|
||||||
if (DiagramsViewModel.SaveFile())
|
if (PageViewModel.SaveFile())
|
||||||
{
|
{
|
||||||
SaveHistory(DiagramsViewModel);
|
SaveHistory(PageViewModel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SaveAsExecuted()
|
private void SaveAsExecuted()
|
||||||
{
|
{
|
||||||
if (DiagramsViewModel == null) return;
|
if (PageViewModel == null) return;
|
||||||
|
|
||||||
if (DiagramsViewModel.SaveFile(true))
|
if (PageViewModel.SaveFile(true))
|
||||||
{
|
{
|
||||||
SaveHistory(DiagramsViewModel);
|
SaveHistory(PageViewModel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SaveHistory(DiagramsViewModel diagramsViewModel)
|
private void SaveHistory(PageViewModel diagramsViewModel)
|
||||||
{
|
{
|
||||||
HistoryList.Remove(DiagramsViewModel.FileName);
|
HistoryList.Remove(PageViewModel.FileName);
|
||||||
HistoryList.Insert(0, DiagramsViewModel.FileName);
|
HistoryList.Insert(0, PageViewModel.FileName);
|
||||||
File.WriteAllText(_history, JsonConvert.SerializeObject(HistoryList));
|
File.WriteAllText(_history, JsonConvert.SerializeObject(HistoryList));
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool Save_Enable()
|
private bool Save_Enable()
|
||||||
{
|
{
|
||||||
return DiagramsViewModel != null;
|
return PageViewModel != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PasteExecuted()
|
private void PasteExecuted()
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.PasteCommand.Execute(null);
|
PageViewModel?.DiagramViewModel?.PasteCommand.Execute(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool Paste_Enabled()
|
private bool Paste_Enabled()
|
||||||
@@ -852,32 +852,32 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
|
|
||||||
private void CopyExecuted()
|
private void CopyExecuted()
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.CopyCommand.Execute(null);
|
PageViewModel?.DiagramViewModel?.CopyCommand.Execute(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool Copy_Enabled()
|
private bool Copy_Enabled()
|
||||||
{
|
{
|
||||||
return DiagramsViewModel != null && DiagramsViewModel.DiagramViewModel != null && DiagramsViewModel.DiagramViewModel.SelectedItems.Count() > 0;
|
return PageViewModel != null && PageViewModel.DiagramViewModel != null && PageViewModel.DiagramViewModel.SelectedItems.Count() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DeleteExecuted()
|
private void DeleteExecuted()
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.DeleteCommand.Execute(null);
|
PageViewModel?.DiagramViewModel?.DeleteCommand.Execute(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool Delete_Enabled()
|
private bool Delete_Enabled()
|
||||||
{
|
{
|
||||||
return DiagramsViewModel != null && DiagramsViewModel.DiagramViewModel != null && DiagramsViewModel.DiagramViewModel.SelectedItems.Count() > 0;
|
return PageViewModel != null && PageViewModel.DiagramViewModel != null && PageViewModel.DiagramViewModel.SelectedItems.Count() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CutExecuted()
|
private void CutExecuted()
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.CutCommand.Execute(null);
|
PageViewModel?.DiagramViewModel?.CutCommand.Execute(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool Cut_Enabled()
|
private bool Cut_Enabled()
|
||||||
{
|
{
|
||||||
return DiagramsViewModel != null && DiagramsViewModel.DiagramViewModel != null && DiagramsViewModel.DiagramViewModel.SelectedItems.Count() > 0;
|
return PageViewModel != null && PageViewModel.DiagramViewModel != null && PageViewModel.DiagramViewModel.SelectedItems.Count() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FormatExecuted()
|
private void FormatExecuted()
|
||||||
@@ -887,7 +887,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
|
|
||||||
private bool Format_Enabled()
|
private bool Format_Enabled()
|
||||||
{
|
{
|
||||||
return DiagramsViewModel != null && DiagramsViewModel.DiagramViewModel != null && DiagramsViewModel.DiagramViewModel.SelectedItems.Count() == 1;
|
return PageViewModel != null && PageViewModel.DiagramViewModel != null && PageViewModel.DiagramViewModel.SelectedItems.Count() == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void New_Executed(string type = "Normal")
|
private void New_Executed(string type = "Normal")
|
||||||
@@ -895,22 +895,26 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
IsOpenBackstage = false;
|
IsOpenBackstage = false;
|
||||||
if (type == DiagramType.FlowChart.ToString())
|
if (type == DiagramType.FlowChart.ToString())
|
||||||
{
|
{
|
||||||
DiagramsViewModel = new FlowchartViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
|
PageViewModel = new FlowchartViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
|
||||||
}
|
}
|
||||||
else if (type == DiagramType.Logical.ToString())
|
else if (type == DiagramType.Logical.ToString())
|
||||||
{
|
{
|
||||||
DiagramsViewModel = new LogicalViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
|
PageViewModel = new LogicalViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
|
||||||
}
|
}
|
||||||
else if (type == DiagramType.SFC.ToString())
|
else if (type == DiagramType.SFC.ToString())
|
||||||
{
|
{
|
||||||
DiagramsViewModel = new SFCViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
|
PageViewModel = new SFCViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
|
||||||
|
}
|
||||||
|
else if (type == DiagramType.Mind.ToString())
|
||||||
|
{
|
||||||
|
PageViewModel = new MindViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DiagramsViewModel = new DiagramsViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
|
PageViewModel = new PageViewModel(NewNameHelper.GetNewName(DiagramsViewModels.Select(p => p.Title), "新建-"), "*", (DiagramType)Enum.Parse(typeof(DiagramType), type));
|
||||||
}
|
}
|
||||||
|
|
||||||
DiagramsViewModels.Add(DiagramsViewModel);
|
DiagramsViewModels.Add(PageViewModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ExitExecuted()
|
private void ExitExecuted()
|
||||||
@@ -920,112 +924,112 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
|
|
||||||
private void GroupExecuted(object para)
|
private void GroupExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.GroupCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.GroupCommand.Execute(para);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UngroupExecuted(object para)
|
private void UngroupExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.UngroupCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.UngroupCommand.Execute(para);
|
||||||
}
|
}
|
||||||
|
|
||||||
#region 布局
|
#region 布局
|
||||||
private void AlignTopExecuted(object para)
|
private void AlignTopExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.AlignTopCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.AlignTopCommand.Execute(para);
|
||||||
}
|
}
|
||||||
private void AlignVerticalCentersExecuted(object para)
|
private void AlignVerticalCentersExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.AlignVerticalCentersCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.AlignVerticalCentersCommand.Execute(para);
|
||||||
}
|
}
|
||||||
private void AlignBottomExecuted(object para)
|
private void AlignBottomExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.AlignBottomCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.AlignBottomCommand.Execute(para);
|
||||||
}
|
}
|
||||||
private void AlignLeftExecuted(object para)
|
private void AlignLeftExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.AlignLeftCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.AlignLeftCommand.Execute(para);
|
||||||
}
|
}
|
||||||
private void AlignHorizontalCentersExecuted(object para)
|
private void AlignHorizontalCentersExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.AlignHorizontalCentersCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.AlignHorizontalCentersCommand.Execute(para);
|
||||||
}
|
}
|
||||||
private void AlignRightExecuted(object para)
|
private void AlignRightExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.AlignRightCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.AlignRightCommand.Execute(para);
|
||||||
}
|
}
|
||||||
private void BringForwardExecuted(object para)
|
private void BringForwardExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.BringForwardCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.BringForwardCommand.Execute(para);
|
||||||
}
|
}
|
||||||
private void BringToFrontExecuted(object para)
|
private void BringToFrontExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.BringToFrontCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.BringToFrontCommand.Execute(para);
|
||||||
}
|
}
|
||||||
private void SendBackwardExecuted(object para)
|
private void SendBackwardExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.SendBackwardCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.SendBackwardCommand.Execute(para);
|
||||||
}
|
}
|
||||||
private void SendToBackExecuted(object para)
|
private void SendToBackExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.SendBackwardCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.SendBackwardCommand.Execute(para);
|
||||||
}
|
}
|
||||||
private void DistributeHorizontalExecuted(object para)
|
private void DistributeHorizontalExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.DistributeHorizontalCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.DistributeHorizontalCommand.Execute(para);
|
||||||
}
|
}
|
||||||
private void DistributeVerticalExecuted(object para)
|
private void DistributeVerticalExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.DistributeVerticalCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.DistributeVerticalCommand.Execute(para);
|
||||||
}
|
}
|
||||||
private void SelectAllExecuted(object para)
|
private void SelectAllExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.SelectAllCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.SelectAllCommand.Execute(para);
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private void CenterMoveExecuted(object para)
|
private void CenterMoveExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.CenterMoveCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.CenterMoveCommand.Execute(para);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void LeftMoveExecuted(object para = null)
|
private void LeftMoveExecuted(object para = null)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.LeftMoveCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.LeftMoveCommand.Execute(para);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RightMoveExecuted(object para = null)
|
private void RightMoveExecuted(object para = null)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.RightMoveCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.RightMoveCommand.Execute(para);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpMoveExecuted(object para = null)
|
private void UpMoveExecuted(object para = null)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.UpMoveCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.UpMoveCommand.Execute(para);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DownMoveExecuted(object para = null)
|
private void DownMoveExecuted(object para = null)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.DownMoveCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.DownMoveCommand.Execute(para);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SameWidthExecuted(object para)
|
private void SameWidthExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.SameWidthCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.SameWidthCommand.Execute(para);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SameHeightExecuted(object para)
|
private void SameHeightExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.SameHeightCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.SameHeightCommand.Execute(para);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SameSizeExecuted(object para)
|
private void SameSizeExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.SameSizeCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.SameSizeCommand.Execute(para);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SameAngleExecuted(object para)
|
private void SameAngleExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DiagramViewModel?.SameAngleCommand.Execute(para);
|
PageViewModel?.DiagramViewModel?.SameAngleCommand.Execute(para);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void LockExecuted(object para)
|
private void LockExecuted(object para)
|
||||||
@@ -1040,62 +1044,62 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
|
|
||||||
private void AddPageExecuted(object para)
|
private void AddPageExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.AddPageExecuted(para);
|
PageViewModel?.AddPageExecuted(para);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddCopyPageExecuted(object para)
|
private void AddCopyPageExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.AddCopyPageExecuted(para);
|
PageViewModel?.AddCopyPageExecuted(para);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RenamePageExecuted(object para)
|
private void RenamePageExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.RenamePageExecuted(para);
|
PageViewModel?.RenamePageExecuted(para);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void EndRenamePageExecuted(object para)
|
private void EndRenamePageExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.EndRenamePageExecuted(para);
|
PageViewModel?.EndRenamePageExecuted(para);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DeletePageExecuted(object para)
|
private void DeletePageExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.DeletePageExecuted(para);
|
PageViewModel?.DeletePageExecuted(para);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddImageExecuted(object para)
|
private void AddImageExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.AddImageExecuted(para);
|
PageViewModel?.AddImageExecuted(para);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void EditImageExecuted(object para)
|
private void EditImageExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.EditImageExecuted(DiagramsViewModel.DiagramViewModel.SelectedItems?.FirstOrDefault());
|
PageViewModel?.EditImageExecuted(PageViewModel.DiagramViewModel.SelectedItems?.FirstOrDefault());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ResizeImageExecuted(object para)
|
private void ResizeImageExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.ResizeImageExecuted(DiagramsViewModel.DiagramViewModel.SelectedItems?.FirstOrDefault());
|
PageViewModel?.ResizeImageExecuted(PageViewModel.DiagramViewModel.SelectedItems?.FirstOrDefault());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ResetImageExecuted(object para)
|
private void ResetImageExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.ResetImageExecuted(DiagramsViewModel.DiagramViewModel.SelectedItems?.FirstOrDefault());
|
PageViewModel?.ResetImageExecuted(PageViewModel.DiagramViewModel.SelectedItems?.FirstOrDefault());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddVideoExectued(object para)
|
private void AddVideoExectued(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.AddVideoExecuted(para);
|
PageViewModel?.AddVideoExecuted(para);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddOutLineTextExecuted(object para)
|
private void AddOutLineTextExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.AddOutLineTextExecuted(para);
|
PageViewModel?.AddOutLineTextExecuted(para);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddBarcodeExecuted(object para)
|
private void AddBarcodeExecuted(object para)
|
||||||
{
|
{
|
||||||
DiagramsViewModel?.AddBarcodeExecuted(para);
|
PageViewModel?.AddBarcodeExecuted(para);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SelectedColorExecuted(object para)
|
private void SelectedColorExecuted(object para)
|
||||||
@@ -1104,9 +1108,9 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
|
|
||||||
switch (ColorType)
|
switch (ColorType)
|
||||||
{
|
{
|
||||||
case Models.ColorType.Text: DiagramsViewModel?.SetFont(new FontViewModel() { FontColor = (Color)para }, "FontColor"); break;
|
case Models.ColorType.Text: PageViewModel?.SetFont(new FontViewModel() { FontColor = (Color)para }, "FontColor"); break;
|
||||||
case Models.ColorType.Fill: DiagramsViewModel?.SetColor(new ColorViewModel() { FillColor = new ColorObject() { Color = (Color)para } }, "FillColor"); break;
|
case Models.ColorType.Fill: PageViewModel?.SetColor(new ColorViewModel() { FillColor = new ColorObject() { Color = (Color)para } }, "FillColor"); break;
|
||||||
case Models.ColorType.Line: DiagramsViewModel?.SetColor(new ColorViewModel() { LineColor = new ColorObject() { Color = (Color)para } }, "LineColor"); break;
|
case Models.ColorType.Line: PageViewModel?.SetColor(new ColorViewModel() { LineColor = new ColorObject() { Color = (Color)para } }, "LineColor"); break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
59
AIStudio.Wpf.DiagramApp/ViewModels/MindViewModel.cs
Normal file
59
AIStudio.Wpf.DiagramApp/ViewModels/MindViewModel.cs
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
using AIStudio.Wpf.DiagramApp.Models;
|
||||||
|
using AIStudio.Wpf.DiagramApp.ViewModels;
|
||||||
|
using AIStudio.Wpf.Flowchart.ViewModels;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Media;
|
||||||
|
using AIStudio.Wpf.DiagramDesigner;
|
||||||
|
using AIStudio.Wpf.Mind.ViewModels;
|
||||||
|
|
||||||
|
namespace AIStudio.Wpf.Flowchart
|
||||||
|
{
|
||||||
|
public class MindViewModel : PageViewModel
|
||||||
|
{
|
||||||
|
public MindViewModel(string title, string status, DiagramType diagramType) : base(title, status, diagramType)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public MindViewModel(string filename, DiagramDocument diagramDocument) : base(filename, diagramDocument)
|
||||||
|
{
|
||||||
|
_service.DrawModeViewModel.LineDrawMode = DrawMode.ConnectingLineSmooth;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void InitDiagramViewModel()
|
||||||
|
{
|
||||||
|
base.InitDiagramViewModel();
|
||||||
|
|
||||||
|
DiagramViewModel.GridCellSize = new Size(100, 100);
|
||||||
|
_service.DrawModeViewModel.LineDrawMode = DrawMode.ConnectingLineSmooth;
|
||||||
|
DiagramViewModel.AllowDrop = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Init()
|
||||||
|
{
|
||||||
|
base.Init();
|
||||||
|
|
||||||
|
DesignerItemViewModelBase start = new MindLevel1Node() { Left = 100, Top = 0, ItemWidth = 80, ItemHeight = 40, Text = "思维导图" };
|
||||||
|
DiagramViewModel.DirectAddItemCommand.Execute(start);
|
||||||
|
DiagramViewModel?.CenterMoveCommand.Execute(start);
|
||||||
|
|
||||||
|
DiagramViewModel.ClearSelectedItemsCommand.Execute(null);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Dispose()
|
||||||
|
{
|
||||||
|
base.Dispose();
|
||||||
|
|
||||||
|
foreach (var viewModel in DiagramViewModels)
|
||||||
|
{
|
||||||
|
FlowchartService.DisposeData(viewModel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -21,11 +21,11 @@ using AIStudio.Wpf.DiagramDesigner.Helpers;
|
|||||||
|
|
||||||
namespace AIStudio.Wpf.DiagramApp.ViewModels
|
namespace AIStudio.Wpf.DiagramApp.ViewModels
|
||||||
{
|
{
|
||||||
public partial class DiagramsViewModel : BindableBase
|
public partial class PageViewModel : BindableBase
|
||||||
{
|
{
|
||||||
protected IDiagramServiceProvider _service { get { return DiagramServicesProvider.Instance.Provider; } }
|
protected IDiagramServiceProvider _service { get { return DiagramServicesProvider.Instance.Provider; } }
|
||||||
|
|
||||||
public DiagramsViewModel(string title, string status, DiagramType diagramType)
|
public PageViewModel(string title, string status, DiagramType diagramType)
|
||||||
{
|
{
|
||||||
Title = title;
|
Title = title;
|
||||||
Status = status;
|
Status = status;
|
||||||
@@ -39,7 +39,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
|
|
||||||
Init();
|
Init();
|
||||||
}
|
}
|
||||||
public DiagramsViewModel(string filename)
|
public PageViewModel(string filename)
|
||||||
{
|
{
|
||||||
FileName = filename;
|
FileName = filename;
|
||||||
string ext = Path.GetExtension(filename);
|
string ext = Path.GetExtension(filename);
|
||||||
@@ -47,7 +47,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
OpenFile(diagramDocument, ext);
|
OpenFile(diagramDocument, ext);
|
||||||
}
|
}
|
||||||
|
|
||||||
public DiagramsViewModel(string filename, DiagramDocument diagramDocument)
|
public PageViewModel(string filename, DiagramDocument diagramDocument)
|
||||||
{
|
{
|
||||||
FileName = filename;
|
FileName = filename;
|
||||||
string ext = Path.GetExtension(filename);
|
string ext = Path.GetExtension(filename);
|
||||||
@@ -253,6 +253,7 @@ namespace AIStudio.Wpf.DiagramApp.ViewModels
|
|||||||
viewModel.PageSizeType = diagramItem.PageSizeType;
|
viewModel.PageSizeType = diagramItem.PageSizeType;
|
||||||
viewModel.PhysicalGridMarginSize = diagramItem.PhysicalGridMarginSize;
|
viewModel.PhysicalGridMarginSize = diagramItem.PhysicalGridMarginSize;
|
||||||
viewModel.GridColor = diagramItem.GridColor;
|
viewModel.GridColor = diagramItem.GridColor;
|
||||||
|
viewModel.AllowDrop = diagramItem.AllowDrop;
|
||||||
|
|
||||||
foreach (var diagramItemData in diagramItem.DesignerItems)
|
foreach (var diagramItemData in diagramItem.DesignerItems)
|
||||||
{
|
{
|
||||||
@@ -16,7 +16,7 @@ using AIStudio.Wpf.DiagramDesigner;
|
|||||||
|
|
||||||
namespace AIStudio.Wpf.Flowchart
|
namespace AIStudio.Wpf.Flowchart
|
||||||
{
|
{
|
||||||
public class SFCViewModel : DiagramsViewModel
|
public class SFCViewModel : PageViewModel
|
||||||
{
|
{
|
||||||
public SFCViewModel(string title, string status, DiagramType diagramType) : base(title, status, diagramType)
|
public SFCViewModel(string title, string status, DiagramType diagramType) : base(title, status, diagramType)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -94,6 +94,9 @@
|
|||||||
<Button Margin="5" ToolTip="顺序控制图" Command="{Binding NewCommand}" CommandParameter="SFC" Width="80" Height="80" Foreground="{DynamicResource BlackBrush}" Background="{DynamicResource WhiteBrush}" BorderBrush="{DynamicResource BlackBrush}">
|
<Button Margin="5" ToolTip="顺序控制图" Command="{Binding NewCommand}" CommandParameter="SFC" Width="80" Height="80" Foreground="{DynamicResource BlackBrush}" Background="{DynamicResource WhiteBrush}" BorderBrush="{DynamicResource BlackBrush}">
|
||||||
<Path Stretch="Fill" Margin="20" Fill="{DynamicResource GrayBrush2}" Data="M10.984 13.836a.5.5 0 0 1-.353-.146l-.745-.743a.5.5 0 1 1 .706-.708l.392.391 1.181-1.18a.5.5 0 0 1 .708.707l-1.535 1.533a.504.504 0 0 1-.354.146zm9.353-.147l1.534-1.532a.5.5 0 0 0-.707-.707l-1.181 1.18-.392-.391a.5.5 0 1 0-.706.708l.746.743a.497.497 0 0 0 .706-.001zM4.527 7.452l2.557-1.585A1 1 0 0 0 7.09 4.17L4.533 2.56A1 1 0 0 0 3 3.406v3.196a1.001 1.001 0 0 0 1.527.85zm2.03-2.436L4 6.602V3.406l2.557 1.61zM24 12.5c0 1.93-1.57 3.5-3.5 3.5a3.503 3.503 0 0 1-3.46-3h-2.08a3.503 3.503 0 0 1-3.46 3 3.502 3.502 0 0 1-3.46-3h-.558c-.972 0-1.85-.399-2.482-1.042V17c0 1.654 1.346 3 3 3h.04c.244-1.693 1.7-3 3.46-3 1.93 0 3.5 1.57 3.5 3.5S13.43 24 11.5 24a3.502 3.502 0 0 1-3.46-3H8c-2.206 0-4-1.794-4-4V9.899A5.008 5.008 0 0 1 0 5c0-2.757 2.243-5 5-5s5 2.243 5 5a5.005 5.005 0 0 1-4.952 4.998A2.482 2.482 0 0 0 7.482 12h.558c.244-1.693 1.7-3 3.46-3a3.502 3.502 0 0 1 3.46 3h2.08a3.503 3.503 0 0 1 3.46-3c1.93 0 3.5 1.57 3.5 3.5zm-15 8c0 1.378 1.122 2.5 2.5 2.5s2.5-1.122 2.5-2.5-1.122-2.5-2.5-2.5S9 19.122 9 20.5zM5 9c2.206 0 4-1.794 4-4S7.206 1 5 1 1 2.794 1 5s1.794 4 4 4zm9 3.5c0-1.378-1.122-2.5-2.5-2.5S9 11.122 9 12.5s1.122 2.5 2.5 2.5 2.5-1.122 2.5-2.5zm9 0c0-1.378-1.122-2.5-2.5-2.5S18 11.122 18 12.5s1.122 2.5 2.5 2.5 2.5-1.122 2.5-2.5zm-13 8a.5.5 0 1 0 1 0 .5.5 0 0 0-1 0zm2 0a.5.5 0 1 0 1 0 .5.5 0 0 0-1 0zm12 0c0 1.93-1.57 3.5-3.5 3.5a3.503 3.503 0 0 1-3.46-3.002c-.007.001-.013.005-.021.005l-.506.017h-.017a.5.5 0 0 1-.016-.999l.506-.017c.018-.002.035.006.052.007A3.503 3.503 0 0 1 20.5 17c1.93 0 3.5 1.57 3.5 3.5zm-1 0c0-1.378-1.122-2.5-2.5-2.5S18 19.122 18 20.5s1.122 2.5 2.5 2.5 2.5-1.122 2.5-2.5z" ></Path>
|
<Path Stretch="Fill" Margin="20" Fill="{DynamicResource GrayBrush2}" Data="M10.984 13.836a.5.5 0 0 1-.353-.146l-.745-.743a.5.5 0 1 1 .706-.708l.392.391 1.181-1.18a.5.5 0 0 1 .708.707l-1.535 1.533a.504.504 0 0 1-.354.146zm9.353-.147l1.534-1.532a.5.5 0 0 0-.707-.707l-1.181 1.18-.392-.391a.5.5 0 1 0-.706.708l.746.743a.497.497 0 0 0 .706-.001zM4.527 7.452l2.557-1.585A1 1 0 0 0 7.09 4.17L4.533 2.56A1 1 0 0 0 3 3.406v3.196a1.001 1.001 0 0 0 1.527.85zm2.03-2.436L4 6.602V3.406l2.557 1.61zM24 12.5c0 1.93-1.57 3.5-3.5 3.5a3.503 3.503 0 0 1-3.46-3h-2.08a3.503 3.503 0 0 1-3.46 3 3.502 3.502 0 0 1-3.46-3h-.558c-.972 0-1.85-.399-2.482-1.042V17c0 1.654 1.346 3 3 3h.04c.244-1.693 1.7-3 3.46-3 1.93 0 3.5 1.57 3.5 3.5S13.43 24 11.5 24a3.502 3.502 0 0 1-3.46-3H8c-2.206 0-4-1.794-4-4V9.899A5.008 5.008 0 0 1 0 5c0-2.757 2.243-5 5-5s5 2.243 5 5a5.005 5.005 0 0 1-4.952 4.998A2.482 2.482 0 0 0 7.482 12h.558c.244-1.693 1.7-3 3.46-3a3.502 3.502 0 0 1 3.46 3h2.08a3.503 3.503 0 0 1 3.46-3c1.93 0 3.5 1.57 3.5 3.5zm-15 8c0 1.378 1.122 2.5 2.5 2.5s2.5-1.122 2.5-2.5-1.122-2.5-2.5-2.5S9 19.122 9 20.5zM5 9c2.206 0 4-1.794 4-4S7.206 1 5 1 1 2.794 1 5s1.794 4 4 4zm9 3.5c0-1.378-1.122-2.5-2.5-2.5S9 11.122 9 12.5s1.122 2.5 2.5 2.5 2.5-1.122 2.5-2.5zm9 0c0-1.378-1.122-2.5-2.5-2.5S18 11.122 18 12.5s1.122 2.5 2.5 2.5 2.5-1.122 2.5-2.5zm-13 8a.5.5 0 1 0 1 0 .5.5 0 0 0-1 0zm2 0a.5.5 0 1 0 1 0 .5.5 0 0 0-1 0zm12 0c0 1.93-1.57 3.5-3.5 3.5a3.503 3.503 0 0 1-3.46-3.002c-.007.001-.013.005-.021.005l-.506.017h-.017a.5.5 0 0 1-.016-.999l.506-.017c.018-.002.035.006.052.007A3.503 3.503 0 0 1 20.5 17c1.93 0 3.5 1.57 3.5 3.5zm-1 0c0-1.378-1.122-2.5-2.5-2.5S18 19.122 18 20.5s1.122 2.5 2.5 2.5 2.5-1.122 2.5-2.5z" ></Path>
|
||||||
</Button>
|
</Button>
|
||||||
|
<Button Margin="5" ToolTip="思维导图" Command="{Binding NewCommand}" CommandParameter="Mind" Width="80" Height="80" Foreground="{DynamicResource BlackBrush}" Background="{DynamicResource WhiteBrush}" BorderBrush="{DynamicResource BlackBrush}">
|
||||||
|
<Path Stretch="Fill" Margin="20" Fill="{DynamicResource GrayBrush2}" Data="M768 128a128 128 0 1 1 0 256h-128a128 128 0 0 1-120.704-85.333333H469.333333c-46.933333 0-85.333333 38.4-85.333333 85.333333v7.296a128 128 0 0 1 0 241.408V640c0 46.933333 38.4 85.333333 85.333333 85.333333h49.92A128.128 128.128 0 0 1 640 640h128a128 128 0 1 1 0 256h-128a128 128 0 0 1-120.704-85.333333H469.333333c-94.293333 0-170.666667-76.373333-170.666666-170.666667H213.333333a128 128 0 1 1 0-256h85.333334c0-94.293333 76.373333-170.666667 170.666666-170.666667h49.92A128.128 128.128 0 0 1 640 128h128z m0 597.333333h-128a42.666667 42.666667 0 0 0 0 85.333334h128a42.666667 42.666667 0 0 0 0-85.333334zM341.333333 469.333333H213.333333a42.666667 42.666667 0 0 0 0 85.333334h128a42.666667 42.666667 0 0 0 0-85.333334z m426.666667-256h-128a42.666667 42.666667 0 0 0 0 85.333334h128a42.666667 42.666667 0 0 0 0-85.333334z" ></Path>
|
||||||
|
</Button>
|
||||||
</WrapPanel>
|
</WrapPanel>
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem Header="待续" />
|
<TabItem Header="待续" />
|
||||||
@@ -309,7 +312,7 @@
|
|||||||
Header="撤销"
|
Header="撤销"
|
||||||
Icon="pack://application:,,,/AIStudio.Wpf.DiagramApp;component/Images/undo.png"
|
Icon="pack://application:,,,/AIStudio.Wpf.DiagramApp;component/Images/undo.png"
|
||||||
SizeDefinition="Middle,Small"
|
SizeDefinition="Middle,Small"
|
||||||
Command="{Binding DiagramsViewModel.DiagramViewModel.UndoCommand}">
|
Command="{Binding PageViewModel.DiagramViewModel.UndoCommand}">
|
||||||
<Fluent:Button.ToolTip>
|
<Fluent:Button.ToolTip>
|
||||||
<Fluent:ScreenTip Title="Undo"
|
<Fluent:ScreenTip Title="Undo"
|
||||||
Text="撤销操作"
|
Text="撤销操作"
|
||||||
@@ -320,7 +323,7 @@
|
|||||||
Header="重做"
|
Header="重做"
|
||||||
Icon="pack://application:,,,/AIStudio.Wpf.DiagramApp;component/Images/redo.png"
|
Icon="pack://application:,,,/AIStudio.Wpf.DiagramApp;component/Images/redo.png"
|
||||||
SizeDefinition="Middle,Small"
|
SizeDefinition="Middle,Small"
|
||||||
Command="{Binding DiagramsViewModel.DiagramViewModel.RedoCommand}">
|
Command="{Binding PageViewModel.DiagramViewModel.RedoCommand}">
|
||||||
<Fluent:Button.ToolTip>
|
<Fluent:Button.ToolTip>
|
||||||
<Fluent:ScreenTip Title="Redo"
|
<Fluent:ScreenTip Title="Redo"
|
||||||
Text="重做操作"
|
Text="重做操作"
|
||||||
@@ -1461,7 +1464,7 @@
|
|||||||
<TextBlock Text="S" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="9"/>
|
<TextBlock Text="S" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="9"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Fluent:SplitButton.LargeIcon>
|
</Fluent:SplitButton.LargeIcon>
|
||||||
<ListBox BorderThickness="0" helper:EnumHelper.Enum="{x:Type dd:PageSizeType}" SelectedItem="{Binding DiagramsViewModel.DiagramViewModel.PageSizeType}">
|
<ListBox BorderThickness="0" helper:EnumHelper.Enum="{x:Type dd:PageSizeType}" SelectedItem="{Binding PageViewModel.DiagramViewModel.PageSizeType}">
|
||||||
<ListBox.ItemTemplate>
|
<ListBox.ItemTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
<TextBlock Text="{Binding .,Converter={StaticResource EnumDescriptionConverter}}" Margin="5"/>
|
<TextBlock Text="{Binding .,Converter={StaticResource EnumDescriptionConverter}}" Margin="5"/>
|
||||||
@@ -1478,7 +1481,7 @@
|
|||||||
<Fluent:SplitButton.LargeIcon>
|
<Fluent:SplitButton.LargeIcon>
|
||||||
<iconPacks:PackIconMaterial Kind="PhoneRotateLandscape" VerticalAlignment="Center" HorizontalAlignment="Center"/>
|
<iconPacks:PackIconMaterial Kind="PhoneRotateLandscape" VerticalAlignment="Center" HorizontalAlignment="Center"/>
|
||||||
</Fluent:SplitButton.LargeIcon>
|
</Fluent:SplitButton.LargeIcon>
|
||||||
<ListBox BorderThickness="0" helper:EnumHelper.Enum="{x:Type dd:PageSizeOrientation}" SelectedItem="{Binding DiagramsViewModel.DiagramViewModel.PageSizeOrientation}">
|
<ListBox BorderThickness="0" helper:EnumHelper.Enum="{x:Type dd:PageSizeOrientation}" SelectedItem="{Binding PageViewModel.DiagramViewModel.PageSizeOrientation}">
|
||||||
<ListBox.ItemTemplate>
|
<ListBox.ItemTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
<TextBlock Text="{Binding .,Converter={StaticResource EnumDescriptionConverter}}" Margin="5"/>
|
<TextBlock Text="{Binding .,Converter={StaticResource EnumDescriptionConverter}}" Margin="5"/>
|
||||||
@@ -1495,7 +1498,7 @@
|
|||||||
<Fluent:SplitButton.LargeIcon>
|
<Fluent:SplitButton.LargeIcon>
|
||||||
<iconPacks:PackIconMaterial Kind="RulerSquare" VerticalAlignment="Center" HorizontalAlignment="Center"/>
|
<iconPacks:PackIconMaterial Kind="RulerSquare" VerticalAlignment="Center" HorizontalAlignment="Center"/>
|
||||||
</Fluent:SplitButton.LargeIcon>
|
</Fluent:SplitButton.LargeIcon>
|
||||||
<ListBox BorderThickness="0" helper:EnumHelper.Enum="{x:Type dd:PageUnit}" SelectedItem="{Binding DiagramsViewModel.DiagramViewModel.PageUnit}">
|
<ListBox BorderThickness="0" helper:EnumHelper.Enum="{x:Type dd:PageUnit}" SelectedItem="{Binding PageViewModel.DiagramViewModel.PageUnit}">
|
||||||
<ListBox.ItemTemplate>
|
<ListBox.ItemTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
<TextBlock Text="{Binding .,Converter={StaticResource EnumDescriptionConverter}}" Margin="5"/>
|
<TextBlock Text="{Binding .,Converter={StaticResource EnumDescriptionConverter}}" Margin="5"/>
|
||||||
@@ -1518,21 +1521,21 @@
|
|||||||
Width="190" />
|
Width="190" />
|
||||||
</Fluent:SplitButton.ToolTip>
|
</Fluent:SplitButton.ToolTip>
|
||||||
</Fluent:SplitButton>
|
</Fluent:SplitButton>
|
||||||
<Fluent:SplitButton Header="网格" Width="50" VerticalAlignment="Top" IsCheckable="True" IsChecked="{Binding DiagramsViewModel.ShowGrid}" >
|
<Fluent:SplitButton Header="网格" Width="50" VerticalAlignment="Top" IsCheckable="True" IsChecked="{Binding PageViewModel.ShowGrid}" >
|
||||||
<Fluent:SplitButton.LargeIcon>
|
<Fluent:SplitButton.LargeIcon>
|
||||||
<iconPacks:PackIconMaterial Kind="Grid" VerticalAlignment="Center" HorizontalAlignment="Center"/>
|
<iconPacks:PackIconMaterial Kind="Grid" VerticalAlignment="Center" HorizontalAlignment="Center"/>
|
||||||
</Fluent:SplitButton.LargeIcon>
|
</Fluent:SplitButton.LargeIcon>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<TextBlock Margin="5" Text="宽度(mm)" VerticalAlignment="Center"/>
|
<TextBlock Margin="5" Text="宽度(mm)" VerticalAlignment="Center"/>
|
||||||
<Fluent:Spinner Margin="5" Width="60" Size="Small" Value="{Binding DiagramsViewModel.DiagramViewModel.PhysicalGridCellWidth,Mode=TwoWay}" Minimum="0" Format="0" />
|
<Fluent:Spinner Margin="5" Width="60" Size="Small" Value="{Binding PageViewModel.DiagramViewModel.PhysicalGridCellWidth,Mode=TwoWay}" Minimum="0" Format="0" />
|
||||||
<TextBlock Margin="5" Text="高度(mm)" VerticalAlignment="Center"/>
|
<TextBlock Margin="5" Text="高度(mm)" VerticalAlignment="Center"/>
|
||||||
<Fluent:Spinner Margin="5" Width="60" Size="Small" Value="{Binding DiagramsViewModel.DiagramViewModel.PhysicalGridCellHeight,Mode=TwoWay}" Minimum="0" Format="0" />
|
<Fluent:Spinner Margin="5" Width="60" Size="Small" Value="{Binding PageViewModel.DiagramViewModel.PhysicalGridCellHeight,Mode=TwoWay}" Minimum="0" Format="0" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<TextBlock Margin="5" Text="左右边距(mm)" VerticalAlignment="Center"/>
|
<TextBlock Margin="5" Text="左右边距(mm)" VerticalAlignment="Center"/>
|
||||||
<Fluent:Spinner Margin="5" Width="60" Size="Small" Value="{Binding DiagramsViewModel.DiagramViewModel.PhysicalGridMarginWidth,Mode=TwoWay}" Minimum="0" Format="0" />
|
<Fluent:Spinner Margin="5" Width="60" Size="Small" Value="{Binding PageViewModel.DiagramViewModel.PhysicalGridMarginWidth,Mode=TwoWay}" Minimum="0" Format="0" />
|
||||||
<TextBlock Margin="5" Text="上下边距(mm)" VerticalAlignment="Center"/>
|
<TextBlock Margin="5" Text="上下边距(mm)" VerticalAlignment="Center"/>
|
||||||
<Fluent:Spinner Margin="5" Width="60" Size="Small" Value="{Binding DiagramsViewModel.DiagramViewModel.PhysicalGridMarginHeight,Mode=TwoWay}" Minimum="0" Format="0" />
|
<Fluent:Spinner Margin="5" Width="60" Size="Small" Value="{Binding PageViewModel.DiagramViewModel.PhysicalGridMarginHeight,Mode=TwoWay}" Minimum="0" Format="0" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Fluent:SplitButton.ToolTip>
|
<Fluent:SplitButton.ToolTip>
|
||||||
@@ -1543,28 +1546,28 @@
|
|||||||
</Fluent:SplitButton>
|
</Fluent:SplitButton>
|
||||||
<Fluent:SplitButton Header="横对齐" Width="50" VerticalAlignment="Top">
|
<Fluent:SplitButton Header="横对齐" Width="50" VerticalAlignment="Top">
|
||||||
<UniformGrid Rows="4">
|
<UniformGrid Rows="4">
|
||||||
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellHorizontalAlignment,Converter={dd:ConverterValueMapToBool Parameter='Left'}, ConverterParameter='Left'}" ToolTip="左对齐">
|
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding PageViewModel.DiagramViewModel.CellHorizontalAlignment,Converter={dd:ConverterValueMapToBool Parameter='Left'}, ConverterParameter='Left'}" ToolTip="左对齐">
|
||||||
<Fluent:ToggleButton.LargeIcon>
|
<Fluent:ToggleButton.LargeIcon>
|
||||||
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
||||||
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignLeft" VerticalAlignment="Center" HorizontalAlignment="Left"/>
|
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignLeft" VerticalAlignment="Center" HorizontalAlignment="Left"/>
|
||||||
</Border>
|
</Border>
|
||||||
</Fluent:ToggleButton.LargeIcon>
|
</Fluent:ToggleButton.LargeIcon>
|
||||||
</Fluent:ToggleButton>
|
</Fluent:ToggleButton>
|
||||||
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellHorizontalAlignment,Converter={dd:ConverterValueMapToBool Parameter='Center'}, ConverterParameter='Center'}" ToolTip="居中对齐">
|
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding PageViewModel.DiagramViewModel.CellHorizontalAlignment,Converter={dd:ConverterValueMapToBool Parameter='Center'}, ConverterParameter='Center'}" ToolTip="居中对齐">
|
||||||
<Fluent:ToggleButton.LargeIcon>
|
<Fluent:ToggleButton.LargeIcon>
|
||||||
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
||||||
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignCenter" VerticalAlignment="Center" HorizontalAlignment="Center"/>
|
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignCenter" VerticalAlignment="Center" HorizontalAlignment="Center"/>
|
||||||
</Border>
|
</Border>
|
||||||
</Fluent:ToggleButton.LargeIcon>
|
</Fluent:ToggleButton.LargeIcon>
|
||||||
</Fluent:ToggleButton>
|
</Fluent:ToggleButton>
|
||||||
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellHorizontalAlignment,Converter={dd:ConverterValueMapToBool Parameter='Right'}, ConverterParameter='Right'}" ToolTip="右对齐">
|
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding PageViewModel.DiagramViewModel.CellHorizontalAlignment,Converter={dd:ConverterValueMapToBool Parameter='Right'}, ConverterParameter='Right'}" ToolTip="右对齐">
|
||||||
<Fluent:ToggleButton.LargeIcon>
|
<Fluent:ToggleButton.LargeIcon>
|
||||||
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
||||||
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignRight" VerticalAlignment="Center" HorizontalAlignment="Right"/>
|
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignRight" VerticalAlignment="Center" HorizontalAlignment="Right"/>
|
||||||
</Border>
|
</Border>
|
||||||
</Fluent:ToggleButton.LargeIcon>
|
</Fluent:ToggleButton.LargeIcon>
|
||||||
</Fluent:ToggleButton>
|
</Fluent:ToggleButton>
|
||||||
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellHorizontalAlignment,Converter={dd:ConverterValueMapToBool Parameter='None'}, ConverterParameter='None'}" ToolTip="无对齐">
|
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding PageViewModel.DiagramViewModel.CellHorizontalAlignment,Converter={dd:ConverterValueMapToBool Parameter='None'}, ConverterParameter='None'}" ToolTip="无对齐">
|
||||||
<Fluent:ToggleButton.LargeIcon>
|
<Fluent:ToggleButton.LargeIcon>
|
||||||
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
||||||
<TextBlock Text="无" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
<TextBlock Text="无" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||||
@@ -1587,7 +1590,7 @@
|
|||||||
</Setter.Value>
|
</Setter.Value>
|
||||||
</Setter>
|
</Setter>
|
||||||
<Style.Triggers>
|
<Style.Triggers>
|
||||||
<DataTrigger Binding="{Binding DiagramsViewModel.DiagramViewModel.CellHorizontalAlignment}" Value="Left">
|
<DataTrigger Binding="{Binding PageViewModel.DiagramViewModel.CellHorizontalAlignment}" Value="Left">
|
||||||
<Setter Property="LargeIcon">
|
<Setter Property="LargeIcon">
|
||||||
<Setter.Value>
|
<Setter.Value>
|
||||||
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
||||||
@@ -1596,7 +1599,7 @@
|
|||||||
</Setter.Value>
|
</Setter.Value>
|
||||||
</Setter>
|
</Setter>
|
||||||
</DataTrigger>
|
</DataTrigger>
|
||||||
<DataTrigger Binding="{Binding DiagramsViewModel.DiagramViewModel.CellHorizontalAlignment}" Value="Center">
|
<DataTrigger Binding="{Binding PageViewModel.DiagramViewModel.CellHorizontalAlignment}" Value="Center">
|
||||||
<Setter Property="LargeIcon">
|
<Setter Property="LargeIcon">
|
||||||
<Setter.Value>
|
<Setter.Value>
|
||||||
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
||||||
@@ -1605,7 +1608,7 @@
|
|||||||
</Setter.Value>
|
</Setter.Value>
|
||||||
</Setter>
|
</Setter>
|
||||||
</DataTrigger>
|
</DataTrigger>
|
||||||
<DataTrigger Binding="{Binding DiagramsViewModel.DiagramViewModel.CellHorizontalAlignment}" Value="Right">
|
<DataTrigger Binding="{Binding PageViewModel.DiagramViewModel.CellHorizontalAlignment}" Value="Right">
|
||||||
<Setter Property="LargeIcon">
|
<Setter Property="LargeIcon">
|
||||||
<Setter.Value>
|
<Setter.Value>
|
||||||
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
||||||
@@ -1614,7 +1617,7 @@
|
|||||||
</Setter.Value>
|
</Setter.Value>
|
||||||
</Setter>
|
</Setter>
|
||||||
</DataTrigger>
|
</DataTrigger>
|
||||||
<DataTrigger Binding="{Binding DiagramsViewModel.DiagramViewModel.CellHorizontalAlignment}" Value="None">
|
<DataTrigger Binding="{Binding PageViewModel.DiagramViewModel.CellHorizontalAlignment}" Value="None">
|
||||||
<Setter Property="LargeIcon">
|
<Setter Property="LargeIcon">
|
||||||
<Setter.Value>
|
<Setter.Value>
|
||||||
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
||||||
@@ -1629,28 +1632,28 @@
|
|||||||
</Fluent:SplitButton>
|
</Fluent:SplitButton>
|
||||||
<Fluent:SplitButton Header="竖对齐" Width="50" VerticalAlignment="Top">
|
<Fluent:SplitButton Header="竖对齐" Width="50" VerticalAlignment="Top">
|
||||||
<UniformGrid Columns="4">
|
<UniformGrid Columns="4">
|
||||||
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='Top'}, ConverterParameter='Top'}" ToolTip="上对齐">
|
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding PageViewModel.DiagramViewModel.CellVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='Top'}, ConverterParameter='Top'}" ToolTip="上对齐">
|
||||||
<Fluent:ToggleButton.LargeIcon>
|
<Fluent:ToggleButton.LargeIcon>
|
||||||
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
||||||
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignLeft" RotationAngle="90" VerticalAlignment="Top" HorizontalAlignment="Center"/>
|
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignLeft" RotationAngle="90" VerticalAlignment="Top" HorizontalAlignment="Center"/>
|
||||||
</Border>
|
</Border>
|
||||||
</Fluent:ToggleButton.LargeIcon>
|
</Fluent:ToggleButton.LargeIcon>
|
||||||
</Fluent:ToggleButton>
|
</Fluent:ToggleButton>
|
||||||
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='Center'}, ConverterParameter='Center'}" ToolTip="居中对齐">
|
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding PageViewModel.DiagramViewModel.CellVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='Center'}, ConverterParameter='Center'}" ToolTip="居中对齐">
|
||||||
<Fluent:ToggleButton.LargeIcon>
|
<Fluent:ToggleButton.LargeIcon>
|
||||||
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
||||||
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignCenter" RotationAngle="90" VerticalAlignment="Center" HorizontalAlignment="Center"/>
|
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignCenter" RotationAngle="90" VerticalAlignment="Center" HorizontalAlignment="Center"/>
|
||||||
</Border>
|
</Border>
|
||||||
</Fluent:ToggleButton.LargeIcon>
|
</Fluent:ToggleButton.LargeIcon>
|
||||||
</Fluent:ToggleButton>
|
</Fluent:ToggleButton>
|
||||||
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='Bottom'}, ConverterParameter='Bottom'}" ToolTip="下对齐">
|
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding PageViewModel.DiagramViewModel.CellVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='Bottom'}, ConverterParameter='Bottom'}" ToolTip="下对齐">
|
||||||
<Fluent:ToggleButton.LargeIcon>
|
<Fluent:ToggleButton.LargeIcon>
|
||||||
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
||||||
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignRight" RotationAngle="90" VerticalAlignment="Bottom" HorizontalAlignment="Center"/>
|
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignRight" RotationAngle="90" VerticalAlignment="Bottom" HorizontalAlignment="Center"/>
|
||||||
</Border>
|
</Border>
|
||||||
</Fluent:ToggleButton.LargeIcon>
|
</Fluent:ToggleButton.LargeIcon>
|
||||||
</Fluent:ToggleButton>
|
</Fluent:ToggleButton>
|
||||||
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='None'}, ConverterParameter='None'}" ToolTip="无对齐">
|
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding PageViewModel.DiagramViewModel.CellVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='None'}, ConverterParameter='None'}" ToolTip="无对齐">
|
||||||
<Fluent:ToggleButton.LargeIcon>
|
<Fluent:ToggleButton.LargeIcon>
|
||||||
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
||||||
<TextBlock Text="无" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
<TextBlock Text="无" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||||
@@ -1668,7 +1671,7 @@
|
|||||||
</Setter.Value>
|
</Setter.Value>
|
||||||
</Setter>
|
</Setter>
|
||||||
<Style.Triggers>
|
<Style.Triggers>
|
||||||
<DataTrigger Binding="{Binding DiagramsViewModel.DiagramViewModel.CellVerticalAlignment}" Value="Top">
|
<DataTrigger Binding="{Binding PageViewModel.DiagramViewModel.CellVerticalAlignment}" Value="Top">
|
||||||
<Setter Property="LargeIcon">
|
<Setter Property="LargeIcon">
|
||||||
<Setter.Value>
|
<Setter.Value>
|
||||||
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
||||||
@@ -1677,7 +1680,7 @@
|
|||||||
</Setter.Value>
|
</Setter.Value>
|
||||||
</Setter>
|
</Setter>
|
||||||
</DataTrigger>
|
</DataTrigger>
|
||||||
<DataTrigger Binding="{Binding DiagramsViewModel.DiagramViewModel.CellVerticalAlignment}" Value="Center">
|
<DataTrigger Binding="{Binding PageViewModel.DiagramViewModel.CellVerticalAlignment}" Value="Center">
|
||||||
<Setter Property="LargeIcon">
|
<Setter Property="LargeIcon">
|
||||||
<Setter.Value>
|
<Setter.Value>
|
||||||
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
||||||
@@ -1686,7 +1689,7 @@
|
|||||||
</Setter.Value>
|
</Setter.Value>
|
||||||
</Setter>
|
</Setter>
|
||||||
</DataTrigger>
|
</DataTrigger>
|
||||||
<DataTrigger Binding="{Binding DiagramsViewModel.DiagramViewModel.CellVerticalAlignment}" Value="Bottom">
|
<DataTrigger Binding="{Binding PageViewModel.DiagramViewModel.CellVerticalAlignment}" Value="Bottom">
|
||||||
<Setter Property="LargeIcon">
|
<Setter Property="LargeIcon">
|
||||||
<Setter.Value>
|
<Setter.Value>
|
||||||
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
||||||
@@ -1695,7 +1698,7 @@
|
|||||||
</Setter.Value>
|
</Setter.Value>
|
||||||
</Setter>
|
</Setter>
|
||||||
</DataTrigger>
|
</DataTrigger>
|
||||||
<DataTrigger Binding="{Binding DiagramsViewModel.DiagramViewModel.CellVerticalAlignment}" Value="None">
|
<DataTrigger Binding="{Binding PageViewModel.DiagramViewModel.CellVerticalAlignment}" Value="None">
|
||||||
<Setter Property="LargeIcon">
|
<Setter Property="LargeIcon">
|
||||||
<Setter.Value>
|
<Setter.Value>
|
||||||
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
|
||||||
@@ -1734,7 +1737,7 @@
|
|||||||
<Fluent:SplitButton.LargeIcon>
|
<Fluent:SplitButton.LargeIcon>
|
||||||
<iconPacks:PackIconMaterial Kind="File" VerticalAlignment="Center" HorizontalAlignment="Center"/>
|
<iconPacks:PackIconMaterial Kind="File" VerticalAlignment="Center" HorizontalAlignment="Center"/>
|
||||||
</Fluent:SplitButton.LargeIcon>
|
</Fluent:SplitButton.LargeIcon>
|
||||||
<Fluent:ColorGallery SelectedColor="{Binding DiagramsViewModel.DiagramViewModel.PageBackground, Mode=TwoWay}"
|
<Fluent:ColorGallery SelectedColor="{Binding PageViewModel.DiagramViewModel.PageBackground, Mode=TwoWay}"
|
||||||
Mode="StandardColors"
|
Mode="StandardColors"
|
||||||
StandardColorGridRows="3"
|
StandardColorGridRows="3"
|
||||||
Columns="10"
|
Columns="10"
|
||||||
@@ -1806,7 +1809,7 @@
|
|||||||
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="48" Text="欢迎访问AIStudio画板" Foreground="{DynamicResource GrayBrush2}"/>
|
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="48" Text="欢迎访问AIStudio画板" Foreground="{DynamicResource GrayBrush2}"/>
|
||||||
<dragablz:TabablzControl x:Name="table"
|
<dragablz:TabablzControl x:Name="table"
|
||||||
ItemsSource="{Binding DiagramsViewModels}"
|
ItemsSource="{Binding DiagramsViewModels}"
|
||||||
SelectedItem="{Binding DiagramsViewModel}"
|
SelectedItem="{Binding PageViewModel}"
|
||||||
Background="Transparent"
|
Background="Transparent"
|
||||||
ItemContainerStyle="{StaticResource TrapezoidDragableTabItemStyle}"
|
ItemContainerStyle="{StaticResource TrapezoidDragableTabItemStyle}"
|
||||||
ShowDefaultCloseButton="True"
|
ShowDefaultCloseButton="True"
|
||||||
@@ -1945,8 +1948,8 @@
|
|||||||
Grid.Row="2">
|
Grid.Row="2">
|
||||||
<Fluent:StatusBarItem Title="Page" HorizontalAlignment="Left">
|
<Fluent:StatusBarItem Title="Page" HorizontalAlignment="Left">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<ListBox ItemsSource="{Binding DiagramsViewModel.DiagramViewModels}"
|
<ListBox ItemsSource="{Binding PageViewModel.DiagramViewModels}"
|
||||||
SelectedItem="{Binding DiagramsViewModel.DiagramViewModel}"
|
SelectedItem="{Binding PageViewModel.DiagramViewModel}"
|
||||||
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
|
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
|
||||||
HorizontalAlignment="Center"
|
HorizontalAlignment="Center"
|
||||||
BorderBrush="Transparent"
|
BorderBrush="Transparent"
|
||||||
@@ -2023,16 +2026,16 @@
|
|||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<TextBlock VerticalAlignment="Center" Width="150">
|
<TextBlock VerticalAlignment="Center" Width="150">
|
||||||
<Run>鼠标位置(mm):</Run>
|
<Run>鼠标位置(mm):</Run>
|
||||||
<Run Text="{Binding DiagramsViewModel.DiagramViewModel.CurrentPoint.X,StringFormat=f1}"/>
|
<Run Text="{Binding PageViewModel.DiagramViewModel.CurrentPoint.X,StringFormat=f1}"/>
|
||||||
<Run>,</Run>
|
<Run>,</Run>
|
||||||
<Run Text="{Binding DiagramsViewModel.DiagramViewModel.CurrentPoint.Y,StringFormat=f1}"/>
|
<Run Text="{Binding PageViewModel.DiagramViewModel.CurrentPoint.Y,StringFormat=f1}"/>
|
||||||
</TextBlock>
|
</TextBlock>
|
||||||
<Rectangle Width="12" Height="12" Margin="5" VerticalAlignment="Center">
|
<Rectangle Width="12" Height="12" Margin="5" VerticalAlignment="Center">
|
||||||
<Rectangle.Fill>
|
<Rectangle.Fill>
|
||||||
<SolidColorBrush Color="{Binding DiagramsViewModel.DiagramViewModel.CurrentColor}" />
|
<SolidColorBrush Color="{Binding PageViewModel.DiagramViewModel.CurrentColor}" />
|
||||||
</Rectangle.Fill>
|
</Rectangle.Fill>
|
||||||
</Rectangle>
|
</Rectangle>
|
||||||
<TextBlock Width="66" VerticalAlignment="Center" Text="{Binding DiagramsViewModel.DiagramViewModel.CurrentColor}" />
|
<TextBlock Width="66" VerticalAlignment="Center" Text="{Binding PageViewModel.DiagramViewModel.CurrentColor}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Fluent:StatusBarItem>
|
</Fluent:StatusBarItem>
|
||||||
|
|
||||||
@@ -2051,7 +2054,7 @@
|
|||||||
HorizontalAlignment="Right">
|
HorizontalAlignment="Right">
|
||||||
<Slider x:Name="zoomSlider"
|
<Slider x:Name="zoomSlider"
|
||||||
Minimum="0.5"
|
Minimum="0.5"
|
||||||
Value="{Binding DiagramsViewModel.DiagramViewModel.ZoomValue}"
|
Value="{Binding PageViewModel.DiagramViewModel.ZoomValue}"
|
||||||
Maximum="2.0"
|
Maximum="2.0"
|
||||||
IsDirectionReversed="False"
|
IsDirectionReversed="False"
|
||||||
Style="{DynamicResource ZoomSliderStyle}"
|
Style="{DynamicResource ZoomSliderStyle}"
|
||||||
|
|||||||
@@ -0,0 +1,68 @@
|
|||||||
|
using System.Globalization;
|
||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Data;
|
||||||
|
|
||||||
|
|
||||||
|
namespace AIStudio.Wpf.DiagramDesigner
|
||||||
|
{
|
||||||
|
public class DoubleToCornerRadius : IValueConverter
|
||||||
|
{
|
||||||
|
public object Convert(object value, System.Type targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
if (value != null)
|
||||||
|
{
|
||||||
|
if (parameter != null)
|
||||||
|
{
|
||||||
|
switch (parameter.ToString())
|
||||||
|
{
|
||||||
|
case "TopLeft":
|
||||||
|
return new CornerRadius(System.Convert.ToDouble(value), 0, 0, 0);
|
||||||
|
|
||||||
|
case "TopRight":
|
||||||
|
return new CornerRadius(0, System.Convert.ToDouble(value), 0, 0);
|
||||||
|
|
||||||
|
case "BottomRight":
|
||||||
|
return new CornerRadius(0, 0, System.Convert.ToDouble(value), 0);
|
||||||
|
|
||||||
|
case "ButtomLeft":
|
||||||
|
return new CornerRadius(0, 0, 0, System.Convert.ToDouble(value));
|
||||||
|
|
||||||
|
default:
|
||||||
|
return new CornerRadius(System.Convert.ToDouble(value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return new CornerRadius(System.Convert.ToDouble(value));
|
||||||
|
}
|
||||||
|
return new CornerRadius(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public object ConvertBack(object value, System.Type targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
if (value != null)
|
||||||
|
{
|
||||||
|
if (parameter != null)
|
||||||
|
{
|
||||||
|
switch (parameter.ToString())
|
||||||
|
{
|
||||||
|
case "TopLeft":
|
||||||
|
return ((CornerRadius)value).TopLeft;
|
||||||
|
|
||||||
|
case "TopRight":
|
||||||
|
return ((CornerRadius)value).TopRight;
|
||||||
|
|
||||||
|
case "BottomRight":
|
||||||
|
return ((CornerRadius)value).BottomRight;
|
||||||
|
|
||||||
|
case "BottomLeft":
|
||||||
|
return ((CornerRadius)value).BottomLeft;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return ((CornerRadius)value).TopLeft;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ((CornerRadius)value).TopLeft;
|
||||||
|
}
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,5 +10,6 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
FlowChart,
|
FlowChart,
|
||||||
Logical,
|
Logical,
|
||||||
SFC,
|
SFC,
|
||||||
|
Mind
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
PageSizeType = diagramView.PageSizeType;
|
PageSizeType = diagramView.PageSizeType;
|
||||||
PhysicalGridMarginSize = diagramView.PhysicalGridMarginSize;
|
PhysicalGridMarginSize = diagramView.PhysicalGridMarginSize;
|
||||||
GridColor = diagramView.GridColor;
|
GridColor = diagramView.GridColor;
|
||||||
|
AllowDrop = diagramView.AllowDrop;
|
||||||
}
|
}
|
||||||
|
|
||||||
[XmlAttribute]
|
[XmlAttribute]
|
||||||
@@ -154,6 +155,12 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[XmlAttribute]
|
||||||
|
public bool AllowDrop
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
[XmlArray]
|
[XmlArray]
|
||||||
public List<SerializableItem> DesignerItems { get; set; } = new List<SerializableItem>();
|
public List<SerializableItem> DesignerItems { get; set; } = new List<SerializableItem>();
|
||||||
|
|
||||||
|
|||||||
@@ -836,7 +836,7 @@
|
|||||||
GridMarginSize="{Binding GridMarginSize}"
|
GridMarginSize="{Binding GridMarginSize}"
|
||||||
GridColor="{Binding GridColor}"
|
GridColor="{Binding GridColor}"
|
||||||
Background="{Binding PageBackground,Converter={StaticResource ColorBrushConverter}}"
|
Background="{Binding PageBackground,Converter={StaticResource ColorBrushConverter}}"
|
||||||
AllowDrop="True">
|
AllowDrop="{Binding AllowDrop}">
|
||||||
</s:DesignerCanvas>
|
</s:DesignerCanvas>
|
||||||
</ItemsPanelTemplate>
|
</ItemsPanelTemplate>
|
||||||
</ItemsControl.ItemsPanel>
|
</ItemsControl.ItemsPanel>
|
||||||
|
|||||||
@@ -13,6 +13,9 @@ using SvgPathProperties;
|
|||||||
|
|
||||||
namespace AIStudio.Wpf.DiagramDesigner
|
namespace AIStudio.Wpf.DiagramDesigner
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// DefaultLink
|
||||||
|
/// </summary>
|
||||||
public class ConnectionViewModel : SelectableDesignerItemViewModelBase
|
public class ConnectionViewModel : SelectableDesignerItemViewModelBase
|
||||||
{
|
{
|
||||||
public ConnectionViewModel(FullyCreatedConnectorInfo sourceConnectorInfo, ConnectorInfoBase sinkConnectorInfo, DrawMode drawMode = DrawMode.ConnectingLineSmooth, RouterMode routerMode = AIStudio.Wpf.DiagramDesigner.RouterMode.RouterNormal) : this(null, sourceConnectorInfo, sinkConnectorInfo, drawMode, routerMode)
|
public ConnectionViewModel(FullyCreatedConnectorInfo sourceConnectorInfo, ConnectorInfoBase sinkConnectorInfo, DrawMode drawMode = DrawMode.ConnectingLineSmooth, RouterMode routerMode = AIStudio.Wpf.DiagramDesigner.RouterMode.RouterNormal) : this(null, sourceConnectorInfo, sinkConnectorInfo, drawMode, routerMode)
|
||||||
|
|||||||
@@ -199,6 +199,9 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
menuOptions.Clear();
|
menuOptions.Clear();
|
||||||
var orientation = new CinchMenuItem("方向");
|
var orientation = new CinchMenuItem("方向");
|
||||||
|
var none = new CinchMenuItem("无");
|
||||||
|
none.Command = MenuItemCommand;
|
||||||
|
none.CommandParameter = ConnectorOrientation.None;
|
||||||
var top = new CinchMenuItem("上");
|
var top = new CinchMenuItem("上");
|
||||||
top.Command = MenuItemCommand;
|
top.Command = MenuItemCommand;
|
||||||
top.CommandParameter = ConnectorOrientation.Top;
|
top.CommandParameter = ConnectorOrientation.Top;
|
||||||
@@ -211,6 +214,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
var right = new CinchMenuItem("右");
|
var right = new CinchMenuItem("右");
|
||||||
right.Command = MenuItemCommand;
|
right.Command = MenuItemCommand;
|
||||||
right.CommandParameter = ConnectorOrientation.Right;
|
right.CommandParameter = ConnectorOrientation.Right;
|
||||||
|
orientation.Children.Add(none);
|
||||||
orientation.Children.Add(top);
|
orientation.Children.Add(top);
|
||||||
orientation.Children.Add(bottom);
|
orientation.Children.Add(bottom);
|
||||||
orientation.Children.Add(left);
|
orientation.Children.Add(left);
|
||||||
|
|||||||
@@ -8,12 +8,22 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
public class DiagramOption
|
public class DiagramOption
|
||||||
{
|
{
|
||||||
|
public LayoutOption LayoutOption
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
} = new LayoutOption();
|
||||||
|
|
||||||
public ShortcutOption ShortcutOption
|
public ShortcutOption ShortcutOption
|
||||||
{
|
{
|
||||||
get; set;
|
get; set;
|
||||||
} = new ShortcutOption();
|
} = new ShortcutOption();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class LayoutOption
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public class ShortcutOption
|
public class ShortcutOption
|
||||||
{
|
{
|
||||||
[Description("Select All shortcut (CTRL+A by default)")]
|
[Description("Select All shortcut (CTRL+A by default)")]
|
||||||
|
|||||||
@@ -503,6 +503,11 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
get; set;
|
get; set;
|
||||||
} = new DiagramOption();
|
} = new DiagramOption();
|
||||||
|
|
||||||
|
public bool AllowDrop
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
} = true;
|
||||||
|
|
||||||
private double OffsetX = 10;
|
private double OffsetX = 10;
|
||||||
private double OffsetY = 10;
|
private double OffsetY = 10;
|
||||||
#endregion
|
#endregion
|
||||||
@@ -742,6 +747,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
PageSizeType = diagramItem.PageSizeType;
|
PageSizeType = diagramItem.PageSizeType;
|
||||||
PhysicalGridMarginSize = diagramItem.PhysicalGridMarginSize;
|
PhysicalGridMarginSize = diagramItem.PhysicalGridMarginSize;
|
||||||
GridColor = diagramItem.GridColor;
|
GridColor = diagramItem.GridColor;
|
||||||
|
AllowDrop = diagramItem.AllowDrop;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool ExecuteEnable(object para)
|
public bool ExecuteEnable(object para)
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@@ -10,6 +11,9 @@ using AIStudio.Wpf.DiagramDesigner.Models;
|
|||||||
|
|
||||||
namespace AIStudio.Wpf.DiagramDesigner
|
namespace AIStudio.Wpf.DiagramDesigner
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// DefaultGroup
|
||||||
|
/// </summary>
|
||||||
public class GroupDesignerItemViewModel : DesignerItemViewModelBase
|
public class GroupDesignerItemViewModel : DesignerItemViewModelBase
|
||||||
{
|
{
|
||||||
public GroupDesignerItemViewModel() : this(null)
|
public GroupDesignerItemViewModel() : this(null)
|
||||||
|
|||||||
@@ -257,6 +257,10 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
{
|
{
|
||||||
get; set;
|
get; set;
|
||||||
}
|
}
|
||||||
|
bool AllowDrop
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
System.Windows.Point CurrentPoint
|
System.Windows.Point CurrentPoint
|
||||||
{
|
{
|
||||||
get; set;
|
get; set;
|
||||||
|
|||||||
@@ -1,10 +1,14 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.ComponentModel;
|
||||||
using AIStudio.Wpf.DiagramDesigner;
|
using AIStudio.Wpf.DiagramDesigner;
|
||||||
using AIStudio.Wpf.DiagramDesigner.Models;
|
using AIStudio.Wpf.DiagramDesigner.Models;
|
||||||
using AIStudio.Wpf.DiagramDesigner.Services;
|
using AIStudio.Wpf.DiagramDesigner.Services;
|
||||||
|
|
||||||
namespace AIStudio.Wpf.DiagramDesigner
|
namespace AIStudio.Wpf.DiagramDesigner
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// DefaultNode
|
||||||
|
/// </summary>
|
||||||
public class DefaultDesignerItemViewModel : DesignerItemViewModelBase
|
public class DefaultDesignerItemViewModel : DesignerItemViewModelBase
|
||||||
{
|
{
|
||||||
public DefaultDesignerItemViewModel() : this(null)
|
public DefaultDesignerItemViewModel() : this(null)
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
|||||||
|
|
||||||
private void ExecuteAddItemCommand(object parameter)
|
private void ExecuteAddItemCommand(object parameter)
|
||||||
{
|
{
|
||||||
FullyCreatedConnectorInfo connector = new FullyCreatedConnectorInfo(this, ConnectorOrientation.Top, true);
|
FullyCreatedConnectorInfo connector = new FullyCreatedConnectorInfo(this, ConnectorOrientation.None, true);
|
||||||
MouseButtonEventArgs mosueArg = ((EventToCommandArgs)parameter).EventArgs as MouseButtonEventArgs;
|
MouseButtonEventArgs mosueArg = ((EventToCommandArgs)parameter).EventArgs as MouseButtonEventArgs;
|
||||||
var position = mosueArg.GetPosition(((EventToCommandArgs)parameter).Sender as IInputElement);
|
var position = mosueArg.GetPosition(((EventToCommandArgs)parameter).Sender as IInputElement);
|
||||||
connector.XRatio = (position.X - connector.ConnectorWidth / 2) / connector.DataItem.ItemWidth;
|
connector.XRatio = (position.X - connector.ConnectorWidth / 2) / connector.DataItem.ItemWidth;
|
||||||
|
|||||||
@@ -5,6 +5,9 @@ using System.Windows.Media;
|
|||||||
|
|
||||||
namespace AIStudio.Wpf.DiagramDesigner
|
namespace AIStudio.Wpf.DiagramDesigner
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// DefaultTextNode
|
||||||
|
/// </summary>
|
||||||
public class TextDesignerItemViewModel : DesignerItemViewModelBase
|
public class TextDesignerItemViewModel : DesignerItemViewModelBase
|
||||||
{
|
{
|
||||||
public TextDesignerItemViewModel() : this(null)
|
public TextDesignerItemViewModel() : this(null)
|
||||||
|
|||||||
@@ -19,4 +19,17 @@
|
|||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\AIStudio.Wpf.Flowchart\AIStudio.Wpf.Flowchart.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Page Update="Themes\MindNode.xaml">
|
||||||
|
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
|
||||||
|
</Page>
|
||||||
|
<Page Update="Themes\Generic.xaml">
|
||||||
|
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
|
||||||
|
</Page>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
13
AIStudio.Wpf.Mind/NodeLevel.cs
Normal file
13
AIStudio.Wpf.Mind/NodeLevel.cs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace AIStudio.Wpf.Mind
|
||||||
|
{
|
||||||
|
public enum NodeLevel
|
||||||
|
{
|
||||||
|
Level1,
|
||||||
|
Level2,
|
||||||
|
Level3
|
||||||
|
}
|
||||||
|
}
|
||||||
8
AIStudio.Wpf.Mind/Themes/Generic.xaml
Normal file
8
AIStudio.Wpf.Mind/Themes/Generic.xaml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
|
|
||||||
|
<ResourceDictionary.MergedDictionaries>
|
||||||
|
<!--<ResourceDictionary Source="pack://application:,,,/AIStudio.Wpf.Flowchart;component/Controls/FlowchartEditor.xaml"/>-->
|
||||||
|
</ResourceDictionary.MergedDictionaries>
|
||||||
|
|
||||||
|
</ResourceDictionary>
|
||||||
23
AIStudio.Wpf.Mind/Themes/MindNode.xaml
Normal file
23
AIStudio.Wpf.Mind/Themes/MindNode.xaml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram"
|
||||||
|
xmlns:viewmodel="clr-namespace:AIStudio.Wpf.Mind.ViewModels">
|
||||||
|
|
||||||
|
<dd:ColorBrushConverter x:Key="ColorBrushConverter"/>
|
||||||
|
<dd:DoubleToCornerRadius x:Key="DoubleToCornerRadius"/>
|
||||||
|
|
||||||
|
<DataTemplate DataType="{x:Type viewmodel:MindLevel1Node}">
|
||||||
|
<Grid IsHitTestVisible="False">
|
||||||
|
<Grid>
|
||||||
|
<Border BorderThickness="1"
|
||||||
|
BorderBrush="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}"
|
||||||
|
Background="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}"
|
||||||
|
CornerRadius="{Binding CornerRadius,Converter={StaticResource DoubleToCornerRadius}}">
|
||||||
|
|
||||||
|
</Border>
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
|
</DataTemplate>
|
||||||
|
|
||||||
|
|
||||||
|
</ResourceDictionary>
|
||||||
118
AIStudio.Wpf.Mind/ViewModels/MindNode.cs
Normal file
118
AIStudio.Wpf.Mind/ViewModels/MindNode.cs
Normal file
@@ -0,0 +1,118 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Text;
|
||||||
|
using AIStudio.Wpf.DiagramDesigner;
|
||||||
|
using AIStudio.Wpf.DiagramDesigner.Models;
|
||||||
|
|
||||||
|
namespace AIStudio.Wpf.Mind.ViewModels
|
||||||
|
{
|
||||||
|
public class MindNode : DesignerItemViewModelBase
|
||||||
|
{
|
||||||
|
public MindNode(NodeLevel nodeLevel) : this(null, nodeLevel)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public MindNode(IDiagramViewModel root, NodeLevel nodeLevel) : base(root)
|
||||||
|
{
|
||||||
|
NodeLevel = nodeLevel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MindNode(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public MindNode(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[Browsable(false)]
|
||||||
|
public NodeLevel NodeLevel
|
||||||
|
{
|
||||||
|
get; set;
|
||||||
|
}
|
||||||
|
|
||||||
|
private double _cornerRadius = 3;
|
||||||
|
public double CornerRadius
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _cornerRadius;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
SetProperty(ref _cornerRadius, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MindLevel1Node : MindNode
|
||||||
|
{
|
||||||
|
public MindLevel1Node() : this(null)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public MindLevel1Node(IDiagramViewModel root) : base(root, NodeLevel.Level1)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public MindLevel1Node(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public MindLevel1Node(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MindLevel2Node : MindNode
|
||||||
|
{
|
||||||
|
public MindLevel2Node() : this(null)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public MindLevel2Node(IDiagramViewModel root) : base(root, NodeLevel.Level2)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public MindLevel2Node(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public MindLevel2Node(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MindLevel3Node : MindNode
|
||||||
|
{
|
||||||
|
public MindLevel3Node() : this(null)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public MindLevel3Node(IDiagramViewModel root) : base(root, NodeLevel.Level2)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public MindLevel3Node(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public MindLevel3Node(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user