diff --git a/AIStudio.Wpf.Diagram.sln b/AIStudio.Wpf.Diagram.sln
index 0cfd94c..ff57c00 100644
--- a/AIStudio.Wpf.Diagram.sln
+++ b/AIStudio.Wpf.Diagram.sln
@@ -23,7 +23,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "解决方案项", "解决
Directory.Build.Props = Directory.Build.Props
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AIStudio.Wpf.DiagramDesigner.Test", "AIStudio.Wpf.DiagramDesigner.Test\AIStudio.Wpf.DiagramDesigner.Test.csproj", "{559BBB2C-03DE-4C95-B38F-538F0A275793}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AIStudio.Wpf.DiagramDesigner.Demo", "AIStudio.Wpf.DiagramDesigner.Demo\AIStudio.Wpf.DiagramDesigner.Demo.csproj", "{D0467F47-D782-4A84-9AAE-E4A014913AA6}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -55,10 +55,10 @@ Global
{1E77B64D-B457-4467-A5DB-BB7BA01806D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1E77B64D-B457-4467-A5DB-BB7BA01806D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1E77B64D-B457-4467-A5DB-BB7BA01806D9}.Release|Any CPU.Build.0 = Release|Any CPU
- {559BBB2C-03DE-4C95-B38F-538F0A275793}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {559BBB2C-03DE-4C95-B38F-538F0A275793}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {559BBB2C-03DE-4C95-B38F-538F0A275793}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {559BBB2C-03DE-4C95-B38F-538F0A275793}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D0467F47-D782-4A84-9AAE-E4A014913AA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D0467F47-D782-4A84-9AAE-E4A014913AA6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D0467F47-D782-4A84-9AAE-E4A014913AA6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D0467F47-D782-4A84-9AAE-E4A014913AA6}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/AIStudio.Wpf.DiagramDesigner.Test/AIStudio.Wpf.DiagramDesigner.Test.csproj b/AIStudio.Wpf.DiagramDesigner.Demo/AIStudio.Wpf.DiagramDesigner.Demo.csproj
similarity index 100%
rename from AIStudio.Wpf.DiagramDesigner.Test/AIStudio.Wpf.DiagramDesigner.Test.csproj
rename to AIStudio.Wpf.DiagramDesigner.Demo/AIStudio.Wpf.DiagramDesigner.Demo.csproj
diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/App.xaml b/AIStudio.Wpf.DiagramDesigner.Demo/App.xaml
new file mode 100644
index 0000000..5bc383c
--- /dev/null
+++ b/AIStudio.Wpf.DiagramDesigner.Demo/App.xaml
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+ #FF0078D7
+
+ #CC0078D7
+
+ #990078D7
+
+ #660078D7
+
+ #330078D7
+ #FF086F9E
+ #FF000000
+ #51000000
+ #FFFFFFFF
+ #51FFFFFF
+ #FF333333
+ #FF7F7F7F
+ #FF9D9D9D
+ #FFA59F93
+ #FFB9B9B9
+ #FFCCCCCC
+ #FFD8D8D9
+ #FFE0E0E0
+ #5EC9C9C9
+ #FFF7F7F7
+ #00FFFFFF
+ #17FFFFFF
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/AIStudio.Wpf.DiagramDesigner.Test/App.xaml.cs b/AIStudio.Wpf.DiagramDesigner.Demo/App.xaml.cs
similarity index 87%
rename from AIStudio.Wpf.DiagramDesigner.Test/App.xaml.cs
rename to AIStudio.Wpf.DiagramDesigner.Demo/App.xaml.cs
index eac15b6..5d08948 100644
--- a/AIStudio.Wpf.DiagramDesigner.Test/App.xaml.cs
+++ b/AIStudio.Wpf.DiagramDesigner.Demo/App.xaml.cs
@@ -6,7 +6,7 @@ using System.Linq;
using System.Threading.Tasks;
using System.Windows;
-namespace AIStudio.Wpf.DiagramDesigner.Test
+namespace AIStudio.Wpf.DiagramDesigner.Demo
{
///
/// Interaction logic for App.xaml
diff --git a/AIStudio.Wpf.DiagramDesigner.Test/AssemblyInfo.cs b/AIStudio.Wpf.DiagramDesigner.Demo/AssemblyInfo.cs
similarity index 100%
rename from AIStudio.Wpf.DiagramDesigner.Test/AssemblyInfo.cs
rename to AIStudio.Wpf.DiagramDesigner.Demo/AssemblyInfo.cs
diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/MainWindow.xaml b/AIStudio.Wpf.DiagramDesigner.Demo/MainWindow.xaml
new file mode 100644
index 0000000..0ecccc6
--- /dev/null
+++ b/AIStudio.Wpf.DiagramDesigner.Demo/MainWindow.xaml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/MainWindow.xaml.cs b/AIStudio.Wpf.DiagramDesigner.Demo/MainWindow.xaml.cs
new file mode 100644
index 0000000..4252cfa
--- /dev/null
+++ b/AIStudio.Wpf.DiagramDesigner.Demo/MainWindow.xaml.cs
@@ -0,0 +1,89 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using AIStudio.Wpf.DiagramDesigner.Demo.ViewModels;
+
+namespace AIStudio.Wpf.DiagramDesigner.Demo
+{
+ ///
+ /// Interaction logic for MainWindow.xaml
+ ///
+ public partial class MainWindow : Window
+ {
+ #region Identity
+ private static IDictionary _viewDic;
+ private static IDictionary _viewModelDic;
+
+ static MainWindow()
+ {
+ _viewDic = new Dictionary();
+ _viewModelDic = new Dictionary();
+ var assembly = AppDomain.CurrentDomain.GetAssemblies().FirstOrDefault(x => x.FullName.StartsWith("AIStudio.Wpf.DiagramDesigner.Demo"));
+ assembly.GetTypes().Where(x => x.Namespace.StartsWith("AIStudio.Wpf.DiagramDesigner.Demo.Views") && x.IsSubclassOf(typeof(UserControl))).ToList().ForEach(x => _viewDic.Add(x.Name.Remove(x.Name.Length - 4), x));
+ assembly.GetTypes().Where(x => x.Namespace.StartsWith("AIStudio.Wpf.DiagramDesigner.Demo.ViewModels") && x.Name.Contains("ViewModel")).ToList().ForEach(x => _viewModelDic.Add(x.Name.Remove(x.Name.Length - 9), x));
+ }
+ #endregion
+
+ public MainWindow()
+ {
+ InitializeComponent();
+ this.Loaded += MainWindow_Loaded;
+ listbox.ItemsSource = _viewDic.Keys.ToList();
+ }
+
+ private void MainWindow_Loaded(object sender, RoutedEventArgs e)
+ {
+ ListBox_SelectionChanged(null, null);
+ }
+
+ private void Button_Click(object sender, RoutedEventArgs e)
+ {
+ var button = sender as Button;
+ var tag = button.Content?.ToString();
+
+ ShowContent(tag);
+ }
+
+ private void ShowContent(string tag)
+ {
+ if (tag == null) return;
+
+ if (_viewDic.ContainsKey(tag))
+ {
+ var control = Activator.CreateInstance(_viewDic[tag]) as UserControl;
+ if (_viewModelDic.ContainsKey(tag))
+ {
+ var viewmodel = Activator.CreateInstance(_viewModelDic[tag]);
+ if (viewmodel != null)
+ {
+ control.DataContext = viewmodel;
+ }
+ }
+ ContentControl.Content = control;
+ }
+ else
+ ContentControl.Content = null;
+ }
+
+ private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
+ {
+ if (!IsLoaded)
+ return;
+
+ var tag = listbox.SelectedItem as string;
+
+ ShowContent(tag);
+ }
+ }
+}
diff --git a/AIStudio.Wpf.DiagramDesigner.Test/ViewModels/TabItem1ViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/DragAndDropViewModel.cs
similarity index 90%
rename from AIStudio.Wpf.DiagramDesigner.Test/ViewModels/TabItem1ViewModel.cs
rename to AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/DragAndDropViewModel.cs
index 177e7b4..3fe9de4 100644
--- a/AIStudio.Wpf.DiagramDesigner.Test/ViewModels/TabItem1ViewModel.cs
+++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/DragAndDropViewModel.cs
@@ -6,9 +6,9 @@ using System.Windows;
using AIStudio.Wpf.Flowchart;
using AIStudio.Wpf.Flowchart.ViewModels;
-namespace AIStudio.Wpf.DiagramDesigner.Test.ViewModels
+namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels
{
- public class TabItem1ViewModel: BindableBase
+ public class DragAndDropViewModel: BindableBase
{
public ToolBoxViewModel ToolBoxViewModel
{
@@ -64,7 +64,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Test.ViewModels
}
}
- public TabItem1ViewModel()
+ public DragAndDropViewModel()
{
ToolBoxViewModel = new ToolBoxViewModel();
DiagramViewModel = new DiagramViewModel();
@@ -75,7 +75,6 @@ namespace AIStudio.Wpf.DiagramDesigner.Test.ViewModels
DiagramViewModel.CellVerticalAlignment = CellVerticalAlignment.Center;
DiagramViewModel.PageSizeType = PageSizeType.Custom;
DiagramViewModel.PageSize = new Size(double.NaN, double.NaN);
- DiagramViewModel.DrawModeViewModel = new DrawModeViewModel() { LineDrawMode = DrawMode.ConnectingLineBoundary };
DiagramViewModel.PropertyChanged += DiagramViewModel_PropertyChanged;
}
diff --git a/AIStudio.Wpf.DiagramDesigner.Test/ViewModels/TabItem2ViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/FlowchartEditorViewModel.cs
similarity index 94%
rename from AIStudio.Wpf.DiagramDesigner.Test/ViewModels/TabItem2ViewModel.cs
rename to AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/FlowchartEditorViewModel.cs
index e8fe342..ba39107 100644
--- a/AIStudio.Wpf.DiagramDesigner.Test/ViewModels/TabItem2ViewModel.cs
+++ b/AIStudio.Wpf.DiagramDesigner.Demo/ViewModels/FlowchartEditorViewModel.cs
@@ -3,9 +3,9 @@ using System.Collections.Generic;
using System.Text;
using AIStudio.Wpf.Flowchart;
-namespace AIStudio.Wpf.DiagramDesigner.Test.ViewModels
+namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels
{
- public class TabItem2ViewModel : BindableBase
+ public class FlowchartEditorViewModel : BindableBase
{
private List _users = new List()
{
@@ -108,7 +108,7 @@ namespace AIStudio.Wpf.DiagramDesigner.Test.ViewModels
get; private set;
}
- public TabItem2ViewModel()
+ public FlowchartEditorViewModel()
{
GetDataCommand = new SimpleCommand(GetDataExcute);
SetDataCommand = new SimpleCommand(SetDataExcute);
diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/Views/DragAndDropView.xaml b/AIStudio.Wpf.DiagramDesigner.Demo/Views/DragAndDropView.xaml
new file mode 100644
index 0000000..08217c7
--- /dev/null
+++ b/AIStudio.Wpf.DiagramDesigner.Demo/Views/DragAndDropView.xaml
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/AIStudio.Wpf.DiagramDesigner.Test/MainWindow.xaml.cs b/AIStudio.Wpf.DiagramDesigner.Demo/Views/DragAndDropView.xaml.cs
similarity index 58%
rename from AIStudio.Wpf.DiagramDesigner.Test/MainWindow.xaml.cs
rename to AIStudio.Wpf.DiagramDesigner.Demo/Views/DragAndDropView.xaml.cs
index 19c1e04..242f43f 100644
--- a/AIStudio.Wpf.DiagramDesigner.Test/MainWindow.xaml.cs
+++ b/AIStudio.Wpf.DiagramDesigner.Demo/Views/DragAndDropView.xaml.cs
@@ -1,8 +1,6 @@
using System;
using System.Collections.Generic;
-using System.Linq;
using System.Text;
-using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
@@ -12,19 +10,17 @@ using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
-using AIStudio.Wpf.DiagramDesigner.Test.ViewModels;
-namespace AIStudio.Wpf.DiagramDesigner.Test
+namespace AIStudio.Wpf.DiagramDesigner.Demo.Views
{
///
- /// Interaction logic for MainWindow.xaml
+ /// DragAndDropView.xaml 的交互逻辑
///
- public partial class MainWindow : Window
+ public partial class DragAndDropView : UserControl
{
- public MainWindow()
+ public DragAndDropView()
{
InitializeComponent();
- this.DataContext = new MainWindowViewModel();
}
}
}
diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/Views/FlowchartEditorView.xaml b/AIStudio.Wpf.DiagramDesigner.Demo/Views/FlowchartEditorView.xaml
new file mode 100644
index 0000000..1e29b3e
--- /dev/null
+++ b/AIStudio.Wpf.DiagramDesigner.Demo/Views/FlowchartEditorView.xaml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/AIStudio.Wpf.DiagramDesigner.Demo/Views/FlowchartEditorView.xaml.cs b/AIStudio.Wpf.DiagramDesigner.Demo/Views/FlowchartEditorView.xaml.cs
new file mode 100644
index 0000000..f63cbb3
--- /dev/null
+++ b/AIStudio.Wpf.DiagramDesigner.Demo/Views/FlowchartEditorView.xaml.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace AIStudio.Wpf.DiagramDesigner.Demo.Views
+{
+ ///
+ /// FlowchartEditorDemo.xaml 的交互逻辑
+ ///
+ public partial class FlowchartEditorView : UserControl
+ {
+ public FlowchartEditorView()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/AIStudio.Wpf.DiagramDesigner.Test/App.xaml b/AIStudio.Wpf.DiagramDesigner.Test/App.xaml
deleted file mode 100644
index 2493cd6..0000000
--- a/AIStudio.Wpf.DiagramDesigner.Test/App.xaml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/AIStudio.Wpf.DiagramDesigner.Test/MainWindow.xaml b/AIStudio.Wpf.DiagramDesigner.Test/MainWindow.xaml
deleted file mode 100644
index 916856c..0000000
--- a/AIStudio.Wpf.DiagramDesigner.Test/MainWindow.xaml
+++ /dev/null
@@ -1,175 +0,0 @@
-
-
-
-
-
-
-
-
- #FF0078D7
-
- #CC0078D7
-
- #990078D7
-
- #660078D7
-
- #330078D7
- #FF086F9E
- #FF000000
- #51000000
- #FFFFFFFF
- #51FFFFFF
- #FF333333
- #FF7F7F7F
- #FF9D9D9D
- #FFA59F93
- #FFB9B9B9
- #FFCCCCCC
- #FFD8D8D9
- #FFE0E0E0
- #5EC9C9C9
- #FFF7F7F7
- #00FFFFFF
- #17FFFFFF
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/AIStudio.Wpf.DiagramDesigner.Test/ViewModels/MainWindowViewModel.cs b/AIStudio.Wpf.DiagramDesigner.Test/ViewModels/MainWindowViewModel.cs
deleted file mode 100644
index 767ae9b..0000000
--- a/AIStudio.Wpf.DiagramDesigner.Test/ViewModels/MainWindowViewModel.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Windows;
-using AIStudio.Wpf.Flowchart;
-using AIStudio.Wpf.Flowchart.ViewModels;
-
-namespace AIStudio.Wpf.DiagramDesigner.Test.ViewModels
-{
- class MainWindowViewModel : BindableBase
- {
- public TabItem1ViewModel TabItem1ViewModel
- {
- get; set;
- } = new TabItem1ViewModel();
-
- public TabItem2ViewModel TabItem2ViewModel
- {
-
- get; set;
- } = new TabItem2ViewModel();
- }
-
-}
diff --git a/AIStudio.Wpf.DiagramDesigner/AttachedProperties/IsSelectedProps.cs b/AIStudio.Wpf.DiagramDesigner/AttachedProperties/IsSelectedProps.cs
deleted file mode 100644
index 6abeabf..0000000
--- a/AIStudio.Wpf.DiagramDesigner/AttachedProperties/IsSelectedProps.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Windows;
-using System.Windows.Input;
-
-namespace AIStudio.Wpf.DiagramDesigner
-{
- public static class IsSelectedProps
- {
- #region IsSelected
-
- public static readonly DependencyProperty IsSelectedProperty =
- DependencyProperty.RegisterAttached("IsSelected", typeof(bool), typeof(IsSelectedProps),
- new FrameworkPropertyMetadata(false));
-
- public static bool GetIsSelected(DependencyObject d)
- {
- return (bool)d.GetValue(IsSelectedProperty);
- }
-
- public static void SetIsSelected(DependencyObject d, bool value)
- {
- d.SetValue(IsSelectedProperty, value);
- }
-
- #endregion
- }
-}