From 4b798f75a0bf51b8d20bac4cbf4927fa98c9af59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=89=BE=E7=AB=B9?= Date: Mon, 12 Dec 2022 22:33:17 +0800 Subject: [PATCH] 1.01 --- .../AIStudio.Wpf.DiagramApp.csproj | 3 +- AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml | 84 +++++++++--------- .../Views/PropertyControl.xaml | 60 ++++++------- .../Views/ToolBoxControl.xaml | 2 +- AIStudio.Wpf.DiagramDesigner/A.ico | Bin 0 -> 16958 bytes AIStudio.Wpf.DiagramDesigner/A.png | Bin 0 -> 11835 bytes .../AIStudio.Wpf.DiagramDesigner.csproj | 21 +++++ .../Controls/MultiSelectComboBox.xaml | 2 +- .../Controls/MultiSelectComboBox.xaml.cs | 18 +--- .../Controls/PopupWindow.xaml | 2 +- .../Controls/PopupWindow.xaml.cs | 2 +- .../Controls/PropertiesView.xaml | 2 +- .../Controls/PropertiesView.xaml.cs | 2 +- .../Converters/BoolVisibilityConverter.cs | 2 +- .../Converters/ConverterBoolToValueMap.cs | 2 +- .../ConverterValueMapSetToVisibility.cs | 2 +- .../Converters/ConverterValueMapToBool.cs | 2 +- .../ConverterValueMapToVisibility.cs | 2 +- .../ConverterValueSetToOppositeVisibility.cs | 2 +- .../Converters/Converters.cs | 2 +- .../Converters/IntToBoolConverter.cs | 2 +- .../Properties/AssemblyInfo.cs | 1 + .../Services}/ApplicationServicesProvider.cs | 9 +- .../Services/IMessageBoxService.cs | 2 +- .../Services/IUIVisualizerService.cs | 2 +- .../Services/WPFMessageBoxService.cs | 2 +- .../Services/WPFUIVisualizerService.cs | 11 +-- AIStudio.Wpf.DiagramHelper/A.ico | Bin 0 -> 16958 bytes AIStudio.Wpf.DiagramHelper/A.png | Bin 0 -> 11835 bytes .../AIStudio.Wpf.DiagramHelper.csproj | 71 ++++----------- .../BarcodeDesignerItemViewModel.cs | 4 +- .../BarcodeDesignerItemViewModel.xaml | 5 +- .../OutLineTextDesignerItemViewModel.cs | 4 +- .../OutLineTextDesignerItemViewModel.xaml | 18 ++-- .../PersistDesignerItemViewModel.cs | 4 +- .../PersistDesignerItemViewModel.xaml | 8 +- .../SettingsDesignerItemViewModel.cs | 4 +- .../SettingsDesignerItemViewModel.xaml | 5 +- .../ViewModels/SvgDesignerItemViewModel.xaml | 2 +- AIStudio.Wpf.Flowchart/A.ico | Bin 0 -> 16958 bytes AIStudio.Wpf.Flowchart/A.png | Bin 0 -> 11835 bytes .../AIStudio.Wpf.Flowchart.csproj | 23 ++++- .../Controls/FlowchartEditor.xaml.cs | 2 +- AIStudio.Wpf.Flowchart/Themes/FlowNode.xaml | 15 ++-- AIStudio.Wpf.Flowchart/ViewModels/FlowNode.cs | 7 +- .../ViewModels/MiddleFlowNode.cs | 4 +- .../ViewModels/MiddleFlowNodeData.cs | 17 +++- .../AIStudio.Wpf.Logical.csproj | 2 +- .../Themes/LogicalGateItemViewModel.xaml | 10 +-- .../ViewModels/LinkPointDesignerItemData.cs | 17 +++- .../ViewModels/LogicalGateItemData.cs | 18 +++- .../ViewModels/LogicalGateItemViewModel.cs | 5 +- .../ViewModels/ValueDesignerItemData.cs | 17 +++- AIStudio.Wpf.SFC/AIStudio.Wpf.SFC.csproj | 2 +- AIStudio.Wpf.SFC/Themes/SFCNode.xaml | 11 ++- .../ViewModels/SFCActionNodeData.cs | 23 +++-- .../ViewModels/SFCConditionNodeData.cs | 23 +++-- AIStudio.Wpf.SFC/ViewModels/SFCNode.cs | 3 +- .../Simulate_SolenoidViewModelData.cs | 21 +++-- .../ViewModels/Simulate_TankViewModelData.cs | 21 +++-- 60 files changed, 330 insertions(+), 277 deletions(-) create mode 100644 AIStudio.Wpf.DiagramDesigner/A.ico create mode 100644 AIStudio.Wpf.DiagramDesigner/A.png rename {AIStudio.Wpf.DiagramHelper => AIStudio.Wpf.DiagramDesigner}/Controls/MultiSelectComboBox.xaml (98%) rename {AIStudio.Wpf.DiagramHelper => AIStudio.Wpf.DiagramDesigner}/Controls/MultiSelectComboBox.xaml.cs (96%) rename {AIStudio.Wpf.DiagramHelper => AIStudio.Wpf.DiagramDesigner}/Controls/PopupWindow.xaml (94%) rename {AIStudio.Wpf.DiagramHelper => AIStudio.Wpf.DiagramDesigner}/Controls/PopupWindow.xaml.cs (93%) rename {AIStudio.Wpf.DiagramHelper => AIStudio.Wpf.DiagramDesigner}/Controls/PropertiesView.xaml (97%) rename {AIStudio.Wpf.DiagramHelper => AIStudio.Wpf.DiagramDesigner}/Controls/PropertiesView.xaml.cs (99%) rename {AIStudio.Wpf.DiagramHelper => AIStudio.Wpf.DiagramDesigner}/Converters/BoolVisibilityConverter.cs (96%) rename {AIStudio.Wpf.DiagramHelper => AIStudio.Wpf.DiagramDesigner}/Converters/ConverterBoolToValueMap.cs (98%) rename {AIStudio.Wpf.DiagramHelper => AIStudio.Wpf.DiagramDesigner}/Converters/ConverterValueMapSetToVisibility.cs (97%) rename {AIStudio.Wpf.DiagramHelper => AIStudio.Wpf.DiagramDesigner}/Converters/ConverterValueMapToBool.cs (98%) rename {AIStudio.Wpf.DiagramHelper => AIStudio.Wpf.DiagramDesigner}/Converters/ConverterValueMapToVisibility.cs (97%) rename {AIStudio.Wpf.DiagramHelper => AIStudio.Wpf.DiagramDesigner}/Converters/ConverterValueSetToOppositeVisibility.cs (97%) rename {AIStudio.Wpf.DiagramHelper => AIStudio.Wpf.DiagramDesigner}/Converters/Converters.cs (99%) rename {AIStudio.Wpf.DiagramHelper => AIStudio.Wpf.DiagramDesigner}/Converters/IntToBoolConverter.cs (92%) rename {AIStudio.Wpf.DiagramHelper => AIStudio.Wpf.DiagramDesigner/Services}/ApplicationServicesProvider.cs (90%) rename {AIStudio.Wpf.DiagramHelper => AIStudio.Wpf.DiagramDesigner}/Services/IMessageBoxService.cs (99%) rename {AIStudio.Wpf.DiagramHelper => AIStudio.Wpf.DiagramDesigner}/Services/IUIVisualizerService.cs (93%) rename {AIStudio.Wpf.DiagramHelper => AIStudio.Wpf.DiagramDesigner}/Services/WPFMessageBoxService.cs (99%) rename {AIStudio.Wpf.DiagramHelper => AIStudio.Wpf.DiagramDesigner}/Services/WPFUIVisualizerService.cs (76%) create mode 100644 AIStudio.Wpf.DiagramHelper/A.ico create mode 100644 AIStudio.Wpf.DiagramHelper/A.png create mode 100644 AIStudio.Wpf.Flowchart/A.ico create mode 100644 AIStudio.Wpf.Flowchart/A.png diff --git a/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp.csproj b/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp.csproj index 36973e0..6ef6d0d 100644 --- a/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp.csproj +++ b/AIStudio.Wpf.DiagramApp/AIStudio.Wpf.DiagramApp.csproj @@ -3,8 +3,9 @@ WinExe true + true - + diff --git a/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml b/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml index 05f185e..b885f9d 100644 --- a/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml +++ b/AIStudio.Wpf.DiagramApp/Views/MainWindow.xaml @@ -483,9 +483,9 @@ Icon="pack://application:,,,/AIStudio.Wpf.DiagramApp;component/Images/ChangeCase.png" HorizontalAlignment="Left" SizeDefinition="Small" > - - - + + + - + - + - + - + @@ -539,28 +539,28 @@ - + - + - + - + @@ -570,28 +570,28 @@ - + - + - + - + @@ -611,7 +611,7 @@ Icon="pack://application:,,,/AIStudio.Wpf.DiagramApp;component/Images/Bold.png" HorizontalAlignment="Left" SizeDefinition="Small" - IsChecked="{Binding FontWeight,Converter={converter:ConverterValueMapToBool Parameter='Regular'}, ConverterParameter='Bold'}"> + IsChecked="{Binding FontWeight,Converter={dd:ConverterValueMapToBool Parameter='Regular'}, ConverterParameter='Bold'}"> + IsChecked="{Binding FontStyle,Converter={dd:ConverterValueMapToBool Parameter='Normal'}, ConverterParameter='Italic'}"> - - - - - - + + + + + + - - - - + + + + - - + + diff --git a/AIStudio.Wpf.DiagramApp/Views/ToolBoxControl.xaml b/AIStudio.Wpf.DiagramApp/Views/ToolBoxControl.xaml index 8dd58c1..ac7c734 100644 --- a/AIStudio.Wpf.DiagramApp/Views/ToolBoxControl.xaml +++ b/AIStudio.Wpf.DiagramApp/Views/ToolBoxControl.xaml @@ -11,7 +11,7 @@ xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram" xmlns:conventer="clr-namespace:AIStudio.Wpf.DiagramHelper.Converters;assembly=AIStudio.Wpf.DiagramHelper" xmlns:command="clr-namespace:AIStudio.Wpf.DiagramHelper.Commands;assembly=AIStudio.Wpf.DiagramHelper" - xmlns:svg="clr-namespace:Svg2XamlTestExtension;assembly=Svg2XamlTestExtension" + xmlns:svg="https://gitee.com/akwkevin/aistudio.-wpf.-test/tree/master/Controls/AIStudio.Wpf.Svg2XamlExtension" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300"> diff --git a/AIStudio.Wpf.DiagramDesigner/A.ico b/AIStudio.Wpf.DiagramDesigner/A.ico new file mode 100644 index 0000000000000000000000000000000000000000..cc92975088b33f8c9eed7907c93f92c642970851 GIT binary patch literal 16958 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 AX#fBK literal 0 HcmV?d00001 diff --git a/AIStudio.Wpf.DiagramDesigner/A.png b/AIStudio.Wpf.DiagramDesigner/A.png new file mode 100644 index 0000000000000000000000000000000000000000..b6949fae3d9962793e33e0959509bb6bfed04dc0 GIT binary patch literal 11835 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 TVIkWS0QpFW%6zL3*7p5>@a(=e literal 0 HcmV?d00001 diff --git a/AIStudio.Wpf.DiagramDesigner/AIStudio.Wpf.DiagramDesigner.csproj b/AIStudio.Wpf.DiagramDesigner/AIStudio.Wpf.DiagramDesigner.csproj index c70117e..461e253 100644 --- a/AIStudio.Wpf.DiagramDesigner/AIStudio.Wpf.DiagramDesigner.csproj +++ b/AIStudio.Wpf.DiagramDesigner/AIStudio.Wpf.DiagramDesigner.csproj @@ -2,11 +2,23 @@ true + AIStudio.Wpf.Controls + akwkevin + https://gitee.com/akwkevin + A.png + + + 1.0.1 + 一个Wpf的Diagram控件基础库 + + True + + @@ -32,6 +44,15 @@ + + $(DefaultXamlRuntime) + + + $(DefaultXamlRuntime) + + + $(DefaultXamlRuntime) + $(DefaultXamlRuntime) Designer diff --git a/AIStudio.Wpf.DiagramHelper/Controls/MultiSelectComboBox.xaml b/AIStudio.Wpf.DiagramDesigner/Controls/MultiSelectComboBox.xaml similarity index 98% rename from AIStudio.Wpf.DiagramHelper/Controls/MultiSelectComboBox.xaml rename to AIStudio.Wpf.DiagramDesigner/Controls/MultiSelectComboBox.xaml index 96e1d8e..39ba2a0 100644 --- a/AIStudio.Wpf.DiagramHelper/Controls/MultiSelectComboBox.xaml +++ b/AIStudio.Wpf.DiagramDesigner/Controls/MultiSelectComboBox.xaml @@ -1,4 +1,4 @@ - /// Interaction logic for MultiSelectComboBox.xaml diff --git a/AIStudio.Wpf.DiagramHelper/Controls/PopupWindow.xaml b/AIStudio.Wpf.DiagramDesigner/Controls/PopupWindow.xaml similarity index 94% rename from AIStudio.Wpf.DiagramHelper/Controls/PopupWindow.xaml rename to AIStudio.Wpf.DiagramDesigner/Controls/PopupWindow.xaml index 429a388..b7ac930 100644 --- a/AIStudio.Wpf.DiagramHelper/Controls/PopupWindow.xaml +++ b/AIStudio.Wpf.DiagramDesigner/Controls/PopupWindow.xaml @@ -1,4 +1,4 @@ - /// PopupWindow.xaml 的交互逻辑 diff --git a/AIStudio.Wpf.DiagramHelper/Controls/PropertiesView.xaml b/AIStudio.Wpf.DiagramDesigner/Controls/PropertiesView.xaml similarity index 97% rename from AIStudio.Wpf.DiagramHelper/Controls/PropertiesView.xaml rename to AIStudio.Wpf.DiagramDesigner/Controls/PropertiesView.xaml index 8c06995..2ab91b2 100644 --- a/AIStudio.Wpf.DiagramHelper/Controls/PropertiesView.xaml +++ b/AIStudio.Wpf.DiagramDesigner/Controls/PropertiesView.xaml @@ -1,4 +1,4 @@ - diff --git a/AIStudio.Wpf.DiagramHelper/Controls/PropertiesView.xaml.cs b/AIStudio.Wpf.DiagramDesigner/Controls/PropertiesView.xaml.cs similarity index 99% rename from AIStudio.Wpf.DiagramHelper/Controls/PropertiesView.xaml.cs rename to AIStudio.Wpf.DiagramDesigner/Controls/PropertiesView.xaml.cs index 0d31824..42bcc2f 100644 --- a/AIStudio.Wpf.DiagramHelper/Controls/PropertiesView.xaml.cs +++ b/AIStudio.Wpf.DiagramDesigner/Controls/PropertiesView.xaml.cs @@ -14,7 +14,7 @@ using System.Windows.Shapes; using System.ComponentModel; using System.Reflection; -namespace AIStudio.Wpf.DiagramHelper.Controls +namespace AIStudio.Wpf.DiagramDesigner.Controls { /// /// Interaction logic for PropertiesView.xaml diff --git a/AIStudio.Wpf.DiagramHelper/Converters/BoolVisibilityConverter.cs b/AIStudio.Wpf.DiagramDesigner/Converters/BoolVisibilityConverter.cs similarity index 96% rename from AIStudio.Wpf.DiagramHelper/Converters/BoolVisibilityConverter.cs rename to AIStudio.Wpf.DiagramDesigner/Converters/BoolVisibilityConverter.cs index 0e847c2..11106ee 100644 --- a/AIStudio.Wpf.DiagramHelper/Converters/BoolVisibilityConverter.cs +++ b/AIStudio.Wpf.DiagramDesigner/Converters/BoolVisibilityConverter.cs @@ -7,7 +7,7 @@ using System.Threading.Tasks; using System.Windows; using System.Windows.Data; -namespace AIStudio.Wpf.DiagramHelper.Converters +namespace AIStudio.Wpf.DiagramDesigner.Converters { public class BoolVisibilityConverter : IValueConverter { diff --git a/AIStudio.Wpf.DiagramHelper/Converters/ConverterBoolToValueMap.cs b/AIStudio.Wpf.DiagramDesigner/Converters/ConverterBoolToValueMap.cs similarity index 98% rename from AIStudio.Wpf.DiagramHelper/Converters/ConverterBoolToValueMap.cs rename to AIStudio.Wpf.DiagramDesigner/Converters/ConverterBoolToValueMap.cs index 25c46dc..9173ca8 100644 --- a/AIStudio.Wpf.DiagramHelper/Converters/ConverterBoolToValueMap.cs +++ b/AIStudio.Wpf.DiagramDesigner/Converters/ConverterBoolToValueMap.cs @@ -4,7 +4,7 @@ using System.Windows; using System.Windows.Data; using System.Windows.Markup; -namespace AIStudio.Wpf.DiagramHelper.Converters +namespace AIStudio.Wpf.DiagramDesigner.Converters { public class ConverterBoolToValueMap : MarkupExtension, IValueConverter { diff --git a/AIStudio.Wpf.DiagramHelper/Converters/ConverterValueMapSetToVisibility.cs b/AIStudio.Wpf.DiagramDesigner/Converters/ConverterValueMapSetToVisibility.cs similarity index 97% rename from AIStudio.Wpf.DiagramHelper/Converters/ConverterValueMapSetToVisibility.cs rename to AIStudio.Wpf.DiagramDesigner/Converters/ConverterValueMapSetToVisibility.cs index bcfc687..f96bc30 100644 --- a/AIStudio.Wpf.DiagramHelper/Converters/ConverterValueMapSetToVisibility.cs +++ b/AIStudio.Wpf.DiagramDesigner/Converters/ConverterValueMapSetToVisibility.cs @@ -7,7 +7,7 @@ using System.Windows; using System.Windows.Data; using System.Windows.Markup; -namespace AIStudio.Wpf.DiagramHelper.Converters +namespace AIStudio.Wpf.DiagramDesigner.Converters { public class ConverterValueMapSetToVisibility : MarkupExtension, IValueConverter { diff --git a/AIStudio.Wpf.DiagramHelper/Converters/ConverterValueMapToBool.cs b/AIStudio.Wpf.DiagramDesigner/Converters/ConverterValueMapToBool.cs similarity index 98% rename from AIStudio.Wpf.DiagramHelper/Converters/ConverterValueMapToBool.cs rename to AIStudio.Wpf.DiagramDesigner/Converters/ConverterValueMapToBool.cs index 9fb54b0..beb3068 100644 --- a/AIStudio.Wpf.DiagramHelper/Converters/ConverterValueMapToBool.cs +++ b/AIStudio.Wpf.DiagramDesigner/Converters/ConverterValueMapToBool.cs @@ -4,7 +4,7 @@ using System.Windows; using System.Windows.Data; using System.Windows.Markup; -namespace AIStudio.Wpf.DiagramHelper.Converters +namespace AIStudio.Wpf.DiagramDesigner.Converters { public class ConverterValueMapToBool : MarkupExtension, IValueConverter { diff --git a/AIStudio.Wpf.DiagramHelper/Converters/ConverterValueMapToVisibility.cs b/AIStudio.Wpf.DiagramDesigner/Converters/ConverterValueMapToVisibility.cs similarity index 97% rename from AIStudio.Wpf.DiagramHelper/Converters/ConverterValueMapToVisibility.cs rename to AIStudio.Wpf.DiagramDesigner/Converters/ConverterValueMapToVisibility.cs index f996ba1..5224eaf 100644 --- a/AIStudio.Wpf.DiagramHelper/Converters/ConverterValueMapToVisibility.cs +++ b/AIStudio.Wpf.DiagramDesigner/Converters/ConverterValueMapToVisibility.cs @@ -7,7 +7,7 @@ using System.Windows; using System.Windows.Data; using System.Windows.Markup; -namespace AIStudio.Wpf.DiagramHelper.Converters +namespace AIStudio.Wpf.DiagramDesigner.Converters { public class ConverterValueMapToVisibility : MarkupExtension, IValueConverter { diff --git a/AIStudio.Wpf.DiagramHelper/Converters/ConverterValueSetToOppositeVisibility.cs b/AIStudio.Wpf.DiagramDesigner/Converters/ConverterValueSetToOppositeVisibility.cs similarity index 97% rename from AIStudio.Wpf.DiagramHelper/Converters/ConverterValueSetToOppositeVisibility.cs rename to AIStudio.Wpf.DiagramDesigner/Converters/ConverterValueSetToOppositeVisibility.cs index ac92867..8684eb9 100644 --- a/AIStudio.Wpf.DiagramHelper/Converters/ConverterValueSetToOppositeVisibility.cs +++ b/AIStudio.Wpf.DiagramDesigner/Converters/ConverterValueSetToOppositeVisibility.cs @@ -7,7 +7,7 @@ using System.Windows; using System.Windows.Data; using System.Windows.Markup; -namespace AIStudio.Wpf.DiagramHelper.Converters +namespace AIStudio.Wpf.DiagramDesigner.Converters { public class ConverterValueSetToOppositeVisibility : MarkupExtension, IValueConverter { diff --git a/AIStudio.Wpf.DiagramHelper/Converters/Converters.cs b/AIStudio.Wpf.DiagramDesigner/Converters/Converters.cs similarity index 99% rename from AIStudio.Wpf.DiagramHelper/Converters/Converters.cs rename to AIStudio.Wpf.DiagramDesigner/Converters/Converters.cs index 88453f1..92b9a8c 100644 --- a/AIStudio.Wpf.DiagramHelper/Converters/Converters.cs +++ b/AIStudio.Wpf.DiagramDesigner/Converters/Converters.cs @@ -4,7 +4,7 @@ using System.Globalization; using System.Windows; using System.Windows.Data; -namespace AIStudio.Wpf.DiagramHelper.Converters +namespace AIStudio.Wpf.DiagramDesigner.Converters { #region Half public class HalfConverter : IValueConverter diff --git a/AIStudio.Wpf.DiagramHelper/Converters/IntToBoolConverter.cs b/AIStudio.Wpf.DiagramDesigner/Converters/IntToBoolConverter.cs similarity index 92% rename from AIStudio.Wpf.DiagramHelper/Converters/IntToBoolConverter.cs rename to AIStudio.Wpf.DiagramDesigner/Converters/IntToBoolConverter.cs index 306afc9..5ff50ac 100644 --- a/AIStudio.Wpf.DiagramHelper/Converters/IntToBoolConverter.cs +++ b/AIStudio.Wpf.DiagramDesigner/Converters/IntToBoolConverter.cs @@ -1,7 +1,7 @@ using System; using System.Windows.Data; -namespace AIStudio.Wpf.DiagramHelper.Converters +namespace AIStudio.Wpf.DiagramDesigner.Converters { public class IntToBoolConverter : IValueConverter { diff --git a/AIStudio.Wpf.DiagramDesigner/Properties/AssemblyInfo.cs b/AIStudio.Wpf.DiagramDesigner/Properties/AssemblyInfo.cs index 3c7c9ad..5ad37f4 100644 --- a/AIStudio.Wpf.DiagramDesigner/Properties/AssemblyInfo.cs +++ b/AIStudio.Wpf.DiagramDesigner/Properties/AssemblyInfo.cs @@ -12,5 +12,6 @@ using System.Windows.Markup; [assembly: XmlnsDefinition("https://gitee.com/akwkevin/aistudio.-wpf.-diagram", "AIStudio.Wpf.DiagramDesigner")] [assembly: XmlnsDefinition("https://gitee.com/akwkevin/aistudio.-wpf.-diagram", "AIStudio.Wpf.DiagramDesigner.Controls")] +[assembly: XmlnsDefinition("https://gitee.com/akwkevin/aistudio.-wpf.-diagram", "AIStudio.Wpf.DiagramDesigner.Converters")] [assembly: XmlnsPrefix("https://gitee.com/akwkevin/aistudio.-wpf.-diagram", "dd")] \ No newline at end of file diff --git a/AIStudio.Wpf.DiagramHelper/ApplicationServicesProvider.cs b/AIStudio.Wpf.DiagramDesigner/Services/ApplicationServicesProvider.cs similarity index 90% rename from AIStudio.Wpf.DiagramHelper/ApplicationServicesProvider.cs rename to AIStudio.Wpf.DiagramDesigner/Services/ApplicationServicesProvider.cs index e8b0838..dfe8b97 100644 --- a/AIStudio.Wpf.DiagramHelper/ApplicationServicesProvider.cs +++ b/AIStudio.Wpf.DiagramDesigner/Services/ApplicationServicesProvider.cs @@ -1,11 +1,6 @@ -using AIStudio.Wpf.DiagramHelper.Services; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using System; -namespace AIStudio.Wpf.DiagramHelper +namespace AIStudio.Wpf.DiagramDesigner.Services { /// /// Simple service interface diff --git a/AIStudio.Wpf.DiagramHelper/Services/IMessageBoxService.cs b/AIStudio.Wpf.DiagramDesigner/Services/IMessageBoxService.cs similarity index 99% rename from AIStudio.Wpf.DiagramHelper/Services/IMessageBoxService.cs rename to AIStudio.Wpf.DiagramDesigner/Services/IMessageBoxService.cs index a6f118f..436edb7 100644 --- a/AIStudio.Wpf.DiagramHelper/Services/IMessageBoxService.cs +++ b/AIStudio.Wpf.DiagramDesigner/Services/IMessageBoxService.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace AIStudio.Wpf.DiagramHelper.Services +namespace AIStudio.Wpf.DiagramDesigner.Services { /// /// Available Button options. diff --git a/AIStudio.Wpf.DiagramHelper/Services/IUIVisualizerService.cs b/AIStudio.Wpf.DiagramDesigner/Services/IUIVisualizerService.cs similarity index 93% rename from AIStudio.Wpf.DiagramHelper/Services/IUIVisualizerService.cs rename to AIStudio.Wpf.DiagramDesigner/Services/IUIVisualizerService.cs index 4bb696c..2215169 100644 --- a/AIStudio.Wpf.DiagramHelper/Services/IUIVisualizerService.cs +++ b/AIStudio.Wpf.DiagramDesigner/Services/IUIVisualizerService.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace AIStudio.Wpf.DiagramHelper.Services +namespace AIStudio.Wpf.DiagramDesigner.Services { /// /// This interface defines a UI controller which can be used to display dialogs diff --git a/AIStudio.Wpf.DiagramHelper/Services/WPFMessageBoxService.cs b/AIStudio.Wpf.DiagramDesigner/Services/WPFMessageBoxService.cs similarity index 99% rename from AIStudio.Wpf.DiagramHelper/Services/WPFMessageBoxService.cs rename to AIStudio.Wpf.DiagramDesigner/Services/WPFMessageBoxService.cs index 5239906..9322ef6 100644 --- a/AIStudio.Wpf.DiagramHelper/Services/WPFMessageBoxService.cs +++ b/AIStudio.Wpf.DiagramDesigner/Services/WPFMessageBoxService.cs @@ -5,7 +5,7 @@ using System.Text; using System.Threading.Tasks; using System.Windows; -namespace AIStudio.Wpf.DiagramHelper.Services +namespace AIStudio.Wpf.DiagramDesigner.Services { /// /// This class implements the IMessageBoxService for WPF purposes. diff --git a/AIStudio.Wpf.DiagramHelper/Services/WPFUIVisualizerService.cs b/AIStudio.Wpf.DiagramDesigner/Services/WPFUIVisualizerService.cs similarity index 76% rename from AIStudio.Wpf.DiagramHelper/Services/WPFUIVisualizerService.cs rename to AIStudio.Wpf.DiagramDesigner/Services/WPFUIVisualizerService.cs index 6a81c3a..b6af96f 100644 --- a/AIStudio.Wpf.DiagramHelper/Services/WPFUIVisualizerService.cs +++ b/AIStudio.Wpf.DiagramDesigner/Services/WPFUIVisualizerService.cs @@ -1,12 +1,7 @@ -using AIStudio.Wpf.DiagramHelper.Controls; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows; +using System.Windows; +using AIStudio.Wpf.DiagramDesigner.Controls; -namespace AIStudio.Wpf.DiagramHelper.Services +namespace AIStudio.Wpf.DiagramDesigner.Services { public class WPFUIVisualizerService : IUIVisualizerService { diff --git a/AIStudio.Wpf.DiagramHelper/A.ico b/AIStudio.Wpf.DiagramHelper/A.ico new file mode 100644 index 0000000000000000000000000000000000000000..cc92975088b33f8c9eed7907c93f92c642970851 GIT binary patch literal 16958 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 AX#fBK literal 0 HcmV?d00001 diff --git a/AIStudio.Wpf.DiagramHelper/A.png b/AIStudio.Wpf.DiagramHelper/A.png new file mode 100644 index 0000000000000000000000000000000000000000..b6949fae3d9962793e33e0959509bb6bfed04dc0 GIT binary patch literal 11835 zcmXw6cXxO9;x5JA-Q9W9=l6bdU7Pu1 zH`&>pnRCwlxhGgoMjQo+00{s9ph$qf$wS(~e+L2_0Duoz{|+cX zN*W#jfFx}qA|fYeY-Mj{XKZCnDj_05YHe#}Xku;v05~tDD>$jf-s1?Y-y5JQ3ol$$ zCz|^J$SKMY2GP}W&|?5PztJ&4ef~j6${(>Y(!ff+zOzW+^q{RQnkFNmkRbI?rJr19 zBrApW9y8D?nSx zN1h(o^#_nu1|t6o(^UcGt=7OI4)kt^1vo~iMxlYU0p7{N^rHY$E+9bU6V@0ssT6b; z({$%Xv6i)e6Br86H4;CTC^^mgu_=C%!0GB@V~cF-k9oDQ4(=CpL&P2Ow8T^jEbu9*NlmW);kD9E@h*|1Lldg}UE?h65PZ`;AgM7q9NFP3&Qt4*5Gi`?oyt8gv zZG?K>LC(G{yIufnQb5V&UAca*HaeD$74i}LBQV0umiPMQYd7eQ5Ls3O~%kSV+P(1qc4yor#q@e+ja6}xyAVCt)&39>L!Hqq<4nYmE*H!y$t z99!eUY2#)5!D|aZgb^AF{2uWE$aLX3l!B3Rwej6fTOpo%B~#Au1BoO>4;6( zm7#NvKnV=>#yUax^&9<-wfXkzYwnxpD|gg0QPTU@}MHqJPTp6Q4(5`m69s$9j!Zd z^e|>TPrP!xXZ(JNqLQ7G;H*o@2gOn)w9;S79tC1bwQ}3Vh%-2)v&FohS7%Udp2WGsQuL&7u<_!-^aS%7=cAU4#)>GVD+;ga6L}-+4mwwHTTOb)Vf|=-;h^t^x7*c4N z={gd>OK{dQUH|tsH?=i&rF_w1W_6Um&!hBN`fDoTkY*46xzNqUz3P_D=yrNxYT=*j zsC~v?j=$7?J-2_7txfx!F~?*vxZJC;(LUm)%_G2X@HBo1EzmCj%yi8R>?r6UU+3?j z@SO8Z_Jn`Qc;DVhRKI#hYg2qg=0h( zz!pYEL{THLjkW5+y&`Tt9H zA!tL~JgAAp1V0(~(c|M6T9%TpM?dNm>}~At>F3IJ)SivnBQ7J0!g1dgC!g7pwvb%+r(!^L-zf=8XMLTlBbAD7eHht%d*-KZB zzvEiv^$>Y74v-ad=x0Tgm8Wxw#*b;HxRzG_Hn&zbv1qf%z#W$smzFD!Vv+-=gnqaxv{OVmwll@G7^Z zDz9{9>aubbA@4VxpD#k^tHKsv95*y#S#hJ@tcR@=udj4&nmDVW>_v+kuT^GUR#fp& zCDydJr6Qv>>wfEEv9z@Iy>a;T7<`;}Y*}`%)>-+z-Bf6HGT;KGobWPymr%>%`DogL)r3GHb?HAYr2=_i1KTBX=BIY=cT#MRVTM=R6k;D-nH|% zleT&~XBD${QIA{8=`-KeNCI8Lmd-uT)h2N#*}jZOw|qDFJJIuFQ+q4(mCDY}8bk|u zj_^-l9_!syZ>y!$(-fzAYjs-GKSI0R)awQAZrgGP+2cJcJ!9+1UX8a1$6yz_X`W7p zGKO4>EdK2F^MkP5bmCvc;vJ3ep6ATldJY5Zkt!Kk=`{S8k2}7x+lBgt8R;^D{4>cb zF85L|$!3~AG~10tCNczZ?a!ndweE+m*Y+bdFWRhc$nSNRsTw8A`78LvJ*{6i!Ic_T z#|HN!rz(6E_BYbUyi@0Yy`D_FX6@!5=D%uYy0oA7pAa@$eqJSNqH4K)aJ)OkbwWCm zTG4ckbgq2qSb9Bze?mL*s(Y(8=(5;&(C*Tn=utyEM@0IaqO-!K_}ccow78OI zfMS58ZQOAYoqpq(U{<^}X7cRlr_H&8e!doQr>{`SIn|NHuxYC4k@ zQf-pzf#szE09Psiz}pW1czlPnhX8;B6990e4FK>Y0RXsGF?KWjzwzXly+%0H&pW{Gmu0BFIP2*S{zfbZ2p=j{^aooiAzQv z(9x#^q>#y;3?(5huT$(zt zkCY&#!MVncr=??-1)jQ0uXZ%860Svu+;isYhcy3dVd70(1iQ@NF2=zFvQtt|NgXft zZ|XC&=(P3()xw30N)1@FsW&rl;oZMhE$!LyeBfF9qv4|gI}Q56?H|Gywzk33aNM!s zQgHsghH}QTzZY$uYOp)Wl~*+aHC zeHH`W&6&aLC$kf>ul_=CIi5@J+LKZ&V|guXE`GnqN@7IAx?M?=q4b$)BtVH24-TYA zj{6di4!h^2G~WD_;`Ku|lRIiI%7&+MF-oNzWfI@oOCK1tCQPQgyWL)7KsUgP&N*(2 zcz*bL-ARkq`jpbCtqS8yMdbtiVGTOfvpmNtb>w0dW6XI2Brsw+y5yK2F_*;=CN3F% z!1%SHw@q`(GKJHKYs`7_d8?9!tMyG@5l?}ugbWKIAr9t_VGW_-_2;hLo9MdWC;Pc3 zdga|tk6&xF$_Iuy2BOGpQgBq)vDEx0I829nB=#IGSKs>dQqoU`g>b>*HhG=+UFka( zSf*zlkV(_9S4e=^smKq{K%rX|j9jzp(LBSN)R*;;?DlG?q+!!*WbgxxBIehJyv8l( zOpVM>PR$V(y-?5$#JWYK+MwvRF6oDLn)x7~j}nzI(;7ByteIxQ@i47j>Y3+S7p zf=vq)wprh%b3v|j5k|5qHnRKd;@MQf$efUuWG!2M6G4Cw%_j$W$6Y>QhUjkDPd-}+ zYZ@_{CFYry;i27GSXMo3pZtfJpd?_tNsVk9^d$#x-a_&Qw9tjiygd)GJIl`6l=8TQ z!n+ap%55-!X@iT?wM`+!u2kbDHk$8k5tf}mfy>Z>?JdN& zmLi4B-PnikAYg^;hvG~QySfEw4hmwdv15&&4&i*IXt|4QMiB_NhPbK_Gb9B|O=orC z0orP%6+6f-h6|M36_?@`Uau8na+>HR5y>>Ywa;qU&Bd|ooUQsdf;F1$&3`CMKZFBz z;-r5Lx;1q5NSXBCbR32KBw*9#`<$A^K0Lgy5qZ8BrA@r@HWLswhHKgrP0v%Cq&M(- zOSMkJ+K|yKu)^Io57aq}W$H`y6E(auFXpZMVyN-_O%TIyfd4&*aRv=hxGW25z~@7Z zs8Pd&Ufx-d;V6gRHN9Q-l_9LHXxT95t$OfB9<>E1M3mJi=qxF1j-FrOty??xwjSLbfK{6IKzqL z3z*kOjjXK;4d-XNd#^1T?+E$>O0c}1p8HWTeupT@=da44HBe9h*~ses439PHVa$QE z76tc0p>QOxv*dHJCi|L8VioMPhsS$iIVPe3C`i1XO6sC#W~jxybio(QmGZmd z1pvl^>ErolS?Gi_+GgGLW|K?47-P3$egbV5c4ABp^(*n@4u6p#n$8$a(Bq2mGs*nE z$Zh4opSEm{`@PPUZ()f#dRuIWW(m)H>e=~-Lx;PBQqS-gI4N&TN@}%EHa{(`5$KN> zu}!*L>8gD4b6)0cebhFb>7|y1BSjd%vWAR4ep9G+^D~PksH5C!SnKv=p}B$_lDkOd z4~C_!aON`;uLXt_)!WflBZO&8C3M4siVWz*vVefBKbxQ1`2Qx~U&ek)H`mOY98yIN z5flr?ayE6UE|nJCiKg#RTQ*J7KaF*=t`^@5K-kCFECQKK?b$R^ti=s5QztJbxavTi z;|6|j46wI7FIf&Zb!{7*TcSqo0hKcQ>v76=M6LxL57`J~#(YyztNgY2Gcs?|T$E1Bfam5j?O9`ExmzXAcx*~WBN>e@rDvlzKNa_G`03v$`nTOj zMAVho3Hvn$_oRx^-meJi*EltY>6U6!uw;PdW9ZOUIy?Qt7qzk$LXU48a6?;KqndcX zK9-zmbF+jSmsFzs-La0*oHI^$r~m-ErUI-RnSI!EPzIMmE$ttb*cJX9x{9Xa#j+jH z`lSu6eU4RG_!p{VyC*WQMm;@R{swu1vS?1n7Zecv$AZg#6zsE06;E*{7evNv!PuHv zxCQ8dOr$osGWMQ09~ebMblxB&p{U4meyS!3HQ^ThIavxG3d!fuxW^_bv<5LafB}W~b)K6%lKq25`;Gt*TOql}|jSAt4*(R}F z@z;Mh+#x|)|M2yLT_Fr9B$eRN88fMyEW=QuW33$YYSb?$^>mykG#(xEpMWcvMu$oT zm9Hb#j8ptzd|`kc8i(o6WfCd7)>V(f3|{NxPR6=9Ww$wahCfxf94(gAsb$^pP>OOYh%7AAYo|J?r{4X@@%P#J`L_~ z$8T~cj~3hheJPH7ao_)ZUv{j?MvNP!`HMg>dEo%T7AhpIn&6A9EzbM%0J-kmqa%HVC3ygb%28F8sK! z+<4G>n>Y0ZM#v2FLkVvXB)%$Cs??2%0r7o+mkyMgiLba39_?8&DxVxd(|W99T3T0Q z8l%;I1%mCW*|F7kk}pvpu`H11uU$8{A(~c1rZ9tBwAnVjX8yp~9{Xi4lJ|SbijkD1 zLUNxlQXe^qq&f>~Ui5^^1?r#>bq9VGC2H-g2L9w8Qf+U*$ih2%@fGf;*lC6l(jx_$(CrAQFM4d=TDbr6r)yz@FE?9*nFM z3Y1UF8rFtc1C!!J*qebJys_{@%DQ74Q>@B(6xj1CGc`DSlJ5^O(TZxG=l(Axj0*v) zwSnnFi}@PDS%;YHmlP&Tr$-F}1FGDAgC0>Xr4CU0Rl~A~?XeKOVRWHh-fGU%Ma_9> zLVh$Fhtm#FVszPD$o*((tA7)X7HW_q4#V|e*w*}5vIm*2q#TrGsm=DN~ul?J=BB(+(B`f zWf(IIFmFdH^w?TcUPn8Ny_Q6$URMPD^{^U$pACT&mPctxx&HLPG&&{v2i+kW-m{5P z_groK360J{m%y5*^Gp0~A?XP(PK1`iTd--WHa4(02r>SdD=N!G=QNFS+{&CV>JR+U z)2UQ?D8m$D!J~j(;qD%5A#F5>-bYU5dx5hZ6I)~3p#ed685Dgw7S?V`%2g4eJ=uQ4 zrEqltF=Sjo*fe2W+N3_9;S7JvLk;pxn^V-e zHTOqVx3lE^jW0i3GjS&r?K+!hKl;M}sZHHE2XG3Y#<&#wClXBH_%?&Z`g@Ov&1vqR z6Fj{*bYX$Z3QDB|^>xnKNF;eO(oEQ$$KV~@-514T9!x|SmJ&S??2J1~^$z=g^b{zZK5bBZUJ zM?W#XQrck)qMWdX^YXi!C`EyX(2P>{8=kd)c##U2%O5IY+&H`rLil*)5MiZ*%chtr zCgwsNUfN%tz?4xsIhKUAK0?$jU2FxL2urPPOXrqsu>x@Y?Bu;j>efUH6h6qz+kC|) zE`+{WNDnI=$(&EI@@VeKgTaHS30b6c)5sY3W}w4gttDF07QL+E~ZIs zsm-P?j*7D<6jZX7qlHPsq^&8Q>GhJYVAA%T_@RilTv<0E2hwtrDY`cK5MlrzZj)%B zVDamVN9anned*h0<1x1_=RRl3D4_zfjKv)(3Sp%(`aOBgqvw@PtJo7U>a~j1{xm@8 zB{yXVl6qbL6qwYnSDz$xhR_OL*lFRoczr`Irv594Z8fsrcj^I-7q;sNHs(&uo0Qxe zPDyX1&9q$qk9dA}RoH&Yqdee90Xh+Vn&uZu%=~SU-v9ToGcr)S@Cgp>mZeh z1@$4+0RXg+YlON$`M; zd_wmDhoA?frvMB!m!+E2VH5Trp4@1VJn@BL0kKils1p~#@FJk4d7N=_DgKupGbg+o zrZ*qZB>$ezbj@>gZ^5wq&Fr6W#_BjC4zwev)e=-;C02&Mv7^*te771@R2^_?&ynUk zRrrF1n3vggG#_}2xDf4o@0*vqQtVR|F+rEl)d&~!OcDAqsFnCKfiD74)27a~Ug)qv zQmWrZ8@?9wD`jW!)wNmWW7#%u{CwK;${{UfRN!vtyR%_s`X0wIt(jrF9h0(g21aau7Cpe~Vi z=aq)k^$KD`0@%}FDr=f^U_#ga5<}VScX2N{0tEWsgQOattjYyv%2R@?eR(KQS0ERH z%rGTI3%m9Qylw|f*QN-iasCpfLBxKGCXo{m4xuUnqrjRt6dkM|#gN%JM>5<7S4cUv zTEMZ5r!CZ#YU76YF^{HQyeoLiMi|$KdOav^~z0=&TTGuxt)aLSex=-VHtJKjHNJ z)Ilm|49mi~klhHT*8ddr-YPe;p16b_40FZl z8L^Xg^&UVvfxSh7Q0@Df2p*FB0Nz-1Z55R%2VB_6uv-GMUK&HMmuHiW(%v$pikQkv z4Y9<(rGQh>IORWfqiAw8+Cd!Swwvc(EBu(rFn{9k1Bc~n4N?~8=+S>RhL%%fF|)A1 z|Na7NTW&wvoh{Aa{hgGl5mls1Xd@%$q^AGwQ29$#>p7f+xLcQoB7pe?*<1kV`mZKFaSj|Ze#GFf7OW@JyY|mENd@?WjP=V@+x@~ZbI{uj zi%L|5$)d(;H6PwJe*bI@TB|)vBv><2^IPYDg7Y~*{z8N~Dhh*c?c0aI1^_Gt;SB20 z^PF$d4c3Pq@J4!RcDIt6r?ck3%GWVBrEQB{ijRaJ(0Msw8HTC){BDu2=}q-B%E}kx zqsJ1Ul^!Xb8z+bca$l!SjP2^3QfC`LP9*OV=sXx1oM2F+^Z1h*OY7Q9Vp2SXI(@$k zKf-y9!=Q>vqM4tG6JIsV-4(q_{9g%_1C#T|$?m||1OwV%(-)jIjn54UqmgzeO`YvK zg#HQG%yK79C16Rs-wlX8x79AyxOvHfL%My*jC2$A+ERq49HYm5gmfnKavLRGh#5 zCFB2>1MijKRw%1Nb1Y0Kyr!yrGVCD!c)7{6K?0O(N?Acl>9Oc~vUBx;`houxwGpCT z`n>`7Ipa`Qy)>S@k9p<*7{V*PmmaiDoKOh&wQk1T$dT990`9+5%qub7OSm)0Kp0+1 z*cT%4Bx>A#j@~MC$k4}_BUT4hk&Z)21XRi3TK)j4u?$B%U(+^ew!WPw?hK|Z{SX}x z!21yP6QlI(D;F)H-VflHRZMy81F5?J7u~75qi$7s-PGr=m!~}OI=-R^l%we}KOTNr zbB$v0sNzafAkren)}88Wd=t8aV5!B*%wwUwxF-F{!(8Jp-w z(=oLX_3|xnzb`#4a_CILZW)U-EhlyPwn*FRrDiX3OPqL*b{ZMNFI_!WK5O)Hm>u`= zy#4a@pqv3pxc-jD5zK_Tor5jtzdfiDs6y9;{Z0fwE{F8n+s9P|3H}KkRz3}6$%JZ- zJOSP-HOSzul(DHnuv!l}r)@U6Ch4&FlZB)YQAKBH6FtN^)`kD+)-Ol;v+ygYL5({$ zqrnMGb8nWJ@Jgfx8X~4I>4OY9Q0&D>{5UhZF4*a8V5dzyq`gcb@wtV~Luz81HL>>@@yQLUx>E2EmZd zQ`_-Lc||ix_*JkB?#NF-NG1diL>!%xbY9e~r~8{faV1e(7SZ`fQX=3*5z2Gn*jaw~ zkIJ5CEW^0bW>;}X&kpTL#-A#wMo3Yl9GUf;JP2z&v2guY(T`SF$*Lc8#FWK6IVw6H zkZpFJX|eH6&XJ!*cz!W&f1TmP_Hf06Pu zlysS4;Qu^4i`k$uIQ;CBZ=U<^Voe=S6@3Bz*zrX%4*4*!>sW&OFlVSce}Le_dC!@a*X zcFgM^fBE%#u=P?oCwONxfE)7<__$$|-i&g=pB);t=hAPO*fv&=F~KD}zgNYr{_!YU z{>_pOb$>kOhV>u&`Dxqv8tRVBA@~-k=JlCD^7P@)VcXt{ky|v~4}2{3<5Q4rpi9jE z>aV?3uM?WzISG^reZ5uXf{gnfF~uiJ{hP({Yt3}hDLnkHQXEKxjhD|RF3&3ZPVPea ztR*LypH>Q8)2P`QtVGanFsjYGN;W-Q+A);kNJwdQg?9x|DMK%fb(n$JfUJQQ^KuD# z>~!ISn~o}IOq{*;yVR~>#$Pn-uihi5m&Ez~ljX;ESEikGWrav>gl!A z5h~VRSakx{ZR2cP=>g7rT&xY-5#a=!h-uAfKTMZw?iT+lt^9S_Lp%ECQb6>~fn9h!CE9l2|D|bTz%R-5vNBP9r7W^k@6^g;k7&@xOW%F;uhid48VSTItaIMxKOmifhcZw)%BPeIH5CX`CyFHji#}MNe`ch`IRYrD*Q@XK4@b25( z-H@x385GGHmwf(0n;AUnY(2D$PKm!SQJ(};r#XN0w?V7;c^}HlIM`?oQnB&CR$W0r zzMbz|z0HYd$4p~018Jo)R<%>MTgoAc;c22ihbeO1lEo-u0uzR1Yp)AZybd4BX176s zV0h-Gp|>biR`eDOI~>J@J_}89jO1z@y%)lNtM*28 zl{|II8*Wz-a1SzvAsQxX3+9`C$3c~4go;<$9&!5=+y1m^=L@WqD>b!DiJ~SOZ`Cy_ z(s7cF+m#_*lR{}m{XO%&qNHY(lV|+3z_?saYb4p96%JU#r5oqv9KD(oGqac01@KJb zG}BoMNT?Agv1Kcix2~AQ>FX|uK*1b1=9sNmIshGgh>C*D!(3@e_&2Aa7AZa(qU0P+ zQ|v_{+}7eMbXt@Y0I+^=#cCq^JIdEK!`d^AQ(9Kt&SNbbjLWi|o&P0z_6S6^pmyby z^zh@$^Bk{G&L`Nb1$cjLhdRM1&PJm$G^Yj{*~zVK?3Hyl1St_@z6r>h@@$-5*4=;o z$8DahjcT0?lafmWwMX&^%M0KX3C`Zs3#6xp<-~@W3HY~O%> z=Qt{HN@YYz;>(!}tQFB1&;fu4(pr3?v0^lVj+Ns=i8T&GQQs#EQth6M?=+?|Y?*>y zwI$(=7sh>|=Tdoz1N?8=g+`IU?ic_#Sp{0=rwY7R>-6&ur4?aq2E&}EM1g9y$fazM zPGKukOlRMZsteV=oJJ$wxPkXw)C-tNL7x}5&&6=mR>r>LeES~eIgR0qsYh!&@8sxy zL%I>f_w$yvdsfQz*o=J2%SnLm@Qf?AWZx$B5{>Za!u@O_K(52fX<3NKzNbUsi5PXpl zlf{_ensGed3ft9Av(Y#)qA|4y!>no)E}L;vrJ?;f;7CBFx1<%4C0`#JxIJ*iJ7FLr zQo-BjXk(|jNNCi&0vSRogp#9H~&d3RhZNANI(5j$2AByKS20{V61tr-w zzFBU^{gWE^H*5baFQaRXB|Exh_xe}!#n7s+MU+x3ivtC^5V~Y*brqA478Sn6}34v(Ry^v~D zh6!owi?l;oz5j30-(Sa1cvSZ)xbB>tZ;W2;z7q6!Bkl;ueyU7r6IgjX?%0VfS`I(D z_AeI|_LrehKDfyrb`&;<%~;A}UMO7-uPCBB9sCUj*h2iGHGeVlOB+fPh+QJ~*-u!P zm8Onbe9`|lpK%M~Z=Stt#xaH_pOX!jn8Cxl$an}?AqRs5B+TIG(J&wO5^Rr_OvVQo z^64=Cut>z0gf?haXr?etXhx|N!V@y`A_pBOFlGe6>BEE6t#l#ru`&g6QA1C30QpWKMtpP<8;|m`9kycJ?wwxSzshQ zy$Cdc6^F^;EV37yg*QP_h*&XZBT_qJ_&R&oo!=|DF`B&Vcjtv#0^(u0H~XT>IrYgs zDgP>UPvkb4@Oz^UD-Cr^>xvL5pvmd*MbA_6hEbG3)iPh%-t1n;@YV|ux zE2u?ptl5;qPwdV*Ur!O2V5mXVY-Lzi?f|kIr9TVnaGcFI-Gs!ccQC7ZY_eSPQQqkn*?y#eXQfLR&b@@h04G+V^`m9)1?z8VoJpehs@9iBhjVk}G TVIkWS0QpFW%6zL3*7p5>@a(=e literal 0 HcmV?d00001 diff --git a/AIStudio.Wpf.DiagramHelper/AIStudio.Wpf.DiagramHelper.csproj b/AIStudio.Wpf.DiagramHelper/AIStudio.Wpf.DiagramHelper.csproj index 944a2fd..46ef60d 100644 --- a/AIStudio.Wpf.DiagramHelper/AIStudio.Wpf.DiagramHelper.csproj +++ b/AIStudio.Wpf.DiagramHelper/AIStudio.Wpf.DiagramHelper.csproj @@ -3,73 +3,38 @@ true true + AIStudio.Wpf.Controls + akwkevin + https://gitee.com/akwkevin + A.png + + + 1.0.1 + 一个Wpf的Diagram控件帮助库 + - - + + + + + True + + + DLL\zxing.core.dll - - - - - $(DefaultXamlRuntime) - - - $(DefaultXamlRuntime) - - - $(DefaultXamlRuntime) - Designer - - - $(DefaultXamlRuntime) - - - $(DefaultXamlRuntime) - - - $(DefaultXamlRuntime) - Designer - - - $(DefaultXamlRuntime) - Designer - - - $(DefaultXamlRuntime) - Designer - - - $(DefaultXamlRuntime) - - - $(DefaultXamlRuntime) - Designer - - - $(DefaultXamlRuntime) - Designer - - - $(DefaultXamlRuntime) - Designer - - - - - - + diff --git a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/BarcodeDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/BarcodeDesignerItemViewModel.cs index 8e5fe68..e340cc5 100644 --- a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/BarcodeDesignerItemViewModel.cs +++ b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/BarcodeDesignerItemViewModel.cs @@ -1,6 +1,6 @@ -using AIStudio.Wpf.DiagramHelper.Services; -using System; +using System; using AIStudio.Wpf.DiagramDesigner; +using AIStudio.Wpf.DiagramDesigner.Services; using ZXing; namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels diff --git a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/BarcodeDesignerItemViewModel.xaml b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/BarcodeDesignerItemViewModel.xaml index 37f09b3..58d6075 100644 --- a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/BarcodeDesignerItemViewModel.xaml +++ b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/BarcodeDesignerItemViewModel.xaml @@ -6,12 +6,11 @@ xmlns:controls="clr-namespace:AIStudio.Wpf.DiagramHelper.Controls" xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram" xmlns:Fluent="urn:fluent-ribbon" - xmlns:s="clr-namespace:AIStudio.Wpf.DiagramDesigner;assembly=AIStudio.Wpf.DiagramDesigner" xmlns:i="http://schemas.microsoft.com/xaml/behaviors"> - + - + diff --git a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/OutLineTextDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/OutLineTextDesignerItemViewModel.cs index 8891109..4137eed 100644 --- a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/OutLineTextDesignerItemViewModel.cs +++ b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/OutLineTextDesignerItemViewModel.cs @@ -1,8 +1,8 @@ -using AIStudio.Wpf.DiagramHelper.Services; -using System.Globalization; +using System.Globalization; using System.Windows; using System.Windows.Media; using AIStudio.Wpf.DiagramDesigner; +using AIStudio.Wpf.DiagramDesigner.Services; namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels { diff --git a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/OutLineTextDesignerItemViewModel.xaml b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/OutLineTextDesignerItemViewModel.xaml index 67ca0c6..c9380b9 100644 --- a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/OutLineTextDesignerItemViewModel.xaml +++ b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/OutLineTextDesignerItemViewModel.xaml @@ -2,16 +2,14 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:viewmodel="clr-namespace:AIStudio.Wpf.DiagramHelper.Extensions.ViewModels" xmlns:gif="http://wpfanimatedgif.codeplex.com" - xmlns:converter="clr-namespace:AIStudio.Wpf.DiagramHelper.Converters" xmlns:controls="clr-namespace:AIStudio.Wpf.DiagramHelper.Controls" xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram" xmlns:Fluent="urn:fluent-ribbon" - xmlns:s="clr-namespace:AIStudio.Wpf.DiagramDesigner;assembly=AIStudio.Wpf.DiagramDesigner" xmlns:i="http://schemas.microsoft.com/xaml/behaviors"> - - - + + + @@ -44,9 +42,9 @@ Text="{Binding Text}" FontSize="{Binding ElementName=comboBoxFontSize,Path=SelectedItem}" FontFamily="{Binding ElementName=comboBoxFontName,Path=SelectedItem}" - FontWeight="{Binding ElementName=buttonBold,Path=IsChecked,Converter={converter:ConverterBoolToValueMap Parameter='Regular'}, ConverterParameter='Bold'}" - FontStyle="{Binding ElementName=buttonItalic,Path=IsChecked,Converter={converter:ConverterBoolToValueMap Parameter='Normal'}, ConverterParameter='Italic'}" - TextDecorations="{Binding ElementName=buttonUnderline,Path=IsChecked,Converter={converter:ConverterBoolToValueMap Parameter='None'}, ConverterParameter='Underline'}" + FontWeight="{Binding ElementName=buttonBold,Path=IsChecked,Converter={dd:ConverterBoolToValueMap Parameter='Regular'}, ConverterParameter='Bold'}" + FontStyle="{Binding ElementName=buttonItalic,Path=IsChecked,Converter={dd:ConverterBoolToValueMap Parameter='Normal'}, ConverterParameter='Italic'}" + TextDecorations="{Binding ElementName=buttonUnderline,Path=IsChecked,Converter={dd:ConverterBoolToValueMap Parameter='None'}, ConverterParameter='Underline'}" Height="100" Margin="5" TextWrapping="Wrap"/> @@ -94,13 +92,13 @@ Icon="pack://application:,,,/AIStudio.Wpf.DiagramHelper;component/Images/Bold.png" HorizontalAlignment="Left" SizeDefinition="Small" - IsChecked="{Binding FontViewModel.FontWeight,Converter={converter:ConverterValueMapToBool Parameter='Regular'}, ConverterParameter='Bold'}"/> + IsChecked="{Binding FontViewModel.FontWeight,Converter={dd:ConverterValueMapToBool Parameter='Regular'}, ConverterParameter='Bold'}"/> + IsChecked="{Binding FontViewModel.FontStyle,Converter={dd:ConverterValueMapToBool Parameter='Normal'}, ConverterParameter='Italic'}"/> - - - + + + diff --git a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SettingsDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SettingsDesignerItemViewModel.cs index 0e913d5..e41738e 100644 --- a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SettingsDesignerItemViewModel.cs +++ b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SettingsDesignerItemViewModel.cs @@ -1,6 +1,6 @@ -using AIStudio.Wpf.DiagramHelper.Services; -using System; +using System; using AIStudio.Wpf.DiagramDesigner; +using AIStudio.Wpf.DiagramDesigner.Services; using AIStudio.Wpf.DiagramHelper.Extensions.Models; namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels diff --git a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SettingsDesignerItemViewModel.xaml b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SettingsDesignerItemViewModel.xaml index 879f1fa..0b01e55 100644 --- a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SettingsDesignerItemViewModel.xaml +++ b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SettingsDesignerItemViewModel.xaml @@ -6,12 +6,11 @@ xmlns:controls="clr-namespace:AIStudio.Wpf.DiagramHelper.Controls" xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram" xmlns:Fluent="urn:fluent-ribbon" - xmlns:s="clr-namespace:AIStudio.Wpf.DiagramDesigner;assembly=AIStudio.Wpf.DiagramDesigner" xmlns:i="http://schemas.microsoft.com/xaml/behaviors"> - + - + diff --git a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SvgDesignerItemViewModel.xaml b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SvgDesignerItemViewModel.xaml index 31b15c7..ed4bcfe 100644 --- a/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SvgDesignerItemViewModel.xaml +++ b/AIStudio.Wpf.DiagramHelper/Extensions/ViewModels/SvgDesignerItemViewModel.xaml @@ -2,7 +2,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:AIStudio.Wpf.DiagramDesigner;assembly=AIStudio.Wpf.DiagramDesigner" xmlns:viewmodel="clr-namespace:AIStudio.Wpf.DiagramHelper.Extensions.ViewModels" - xmlns:svg="clr-namespace:Svg2XamlTestExtension;assembly=Svg2XamlTestExtension"> + xmlns:svg="https://gitee.com/akwkevin/aistudio.-wpf.-test/tree/master/Controls/AIStudio.Wpf.Svg2XamlExtension"> diff --git a/AIStudio.Wpf.Flowchart/A.ico b/AIStudio.Wpf.Flowchart/A.ico new file mode 100644 index 0000000000000000000000000000000000000000..cc92975088b33f8c9eed7907c93f92c642970851 GIT binary patch literal 16958 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 AX#fBK literal 0 HcmV?d00001 diff --git a/AIStudio.Wpf.Flowchart/A.png b/AIStudio.Wpf.Flowchart/A.png new file mode 100644 index 0000000000000000000000000000000000000000..b6949fae3d9962793e33e0959509bb6bfed04dc0 GIT binary patch literal 11835 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 TVIkWS0QpFW%6zL3*7p5>@a(=e literal 0 HcmV?d00001 diff --git a/AIStudio.Wpf.Flowchart/AIStudio.Wpf.Flowchart.csproj b/AIStudio.Wpf.Flowchart/AIStudio.Wpf.Flowchart.csproj index 050d2fb..23c0dc8 100644 --- a/AIStudio.Wpf.Flowchart/AIStudio.Wpf.Flowchart.csproj +++ b/AIStudio.Wpf.Flowchart/AIStudio.Wpf.Flowchart.csproj @@ -2,16 +2,20 @@ true + AIStudio.Wpf.Controls + akwkevin + https://gitee.com/akwkevin + A.png + + + 1.0.1 + 一个Wpf的流程图控件 - - - - $(DefaultXamlRuntime) @@ -19,4 +23,15 @@ + + + True + + + + + + + + diff --git a/AIStudio.Wpf.Flowchart/Controls/FlowchartEditor.xaml.cs b/AIStudio.Wpf.Flowchart/Controls/FlowchartEditor.xaml.cs index 17021da..ffdf205 100644 --- a/AIStudio.Wpf.Flowchart/Controls/FlowchartEditor.xaml.cs +++ b/AIStudio.Wpf.Flowchart/Controls/FlowchartEditor.xaml.cs @@ -40,7 +40,7 @@ namespace AIStudio.Wpf.Flowchart.Controls _diagramViewModel.PageSizeType = PageSizeType.Custom; _diagramViewModel.PageSize = new Size(double.NaN, double.NaN); _diagramViewModel.ColorViewModel = new ColorViewModel() { LineWidth = 2 }; - _diagramViewModel.DrawModeViewModel = new DrawModeViewModel() { VectorLineDrawMode = DrawMode.BoundaryConnectingLine }; + //_diagramViewModel.DrawModeViewModel = new DrawModeViewModel() { VectorLineDrawMode = DrawMode.BoundaryConnectingLine }; _diagramViewModel.PropertyChanged += DiagramViewModel_PropertyChanged; } diff --git a/AIStudio.Wpf.Flowchart/Themes/FlowNode.xaml b/AIStudio.Wpf.Flowchart/Themes/FlowNode.xaml index de87280..effe1e8 100644 --- a/AIStudio.Wpf.Flowchart/Themes/FlowNode.xaml +++ b/AIStudio.Wpf.Flowchart/Themes/FlowNode.xaml @@ -1,10 +1,9 @@  + xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram" + xmlns:viewmodel="clr-namespace:AIStudio.Wpf.Flowchart.ViewModels"> - + @@ -113,10 +112,10 @@ - - - - + + + + diff --git a/AIStudio.Wpf.Flowchart/ViewModels/FlowNode.cs b/AIStudio.Wpf.Flowchart/ViewModels/FlowNode.cs index 3e9dbf4..b88958e 100644 --- a/AIStudio.Wpf.Flowchart/ViewModels/FlowNode.cs +++ b/AIStudio.Wpf.Flowchart/ViewModels/FlowNode.cs @@ -1,10 +1,9 @@ -using AIStudio.Wpf.DiagramHelper; -using AIStudio.Wpf.DiagramHelper.Services; -using AIStudio.Wpf.Flowchart.Models; +using System; using System.Collections.Generic; using System.ComponentModel; using AIStudio.Wpf.DiagramDesigner; -using System; +using AIStudio.Wpf.DiagramDesigner.Services; +using AIStudio.Wpf.Flowchart.Models; namespace AIStudio.Wpf.Flowchart.ViewModels { diff --git a/AIStudio.Wpf.Flowchart/ViewModels/MiddleFlowNode.cs b/AIStudio.Wpf.Flowchart/ViewModels/MiddleFlowNode.cs index 77f617f..755d64b 100644 --- a/AIStudio.Wpf.Flowchart/ViewModels/MiddleFlowNode.cs +++ b/AIStudio.Wpf.Flowchart/ViewModels/MiddleFlowNode.cs @@ -1,8 +1,8 @@ -using AIStudio.Wpf.DiagramHelper.Controls; -using System.Collections.Generic; +using System.Collections.Generic; using System.ComponentModel; using System.Windows; using AIStudio.Wpf.DiagramDesigner; +using AIStudio.Wpf.DiagramDesigner.Controls; namespace AIStudio.Wpf.Flowchart.ViewModels { diff --git a/AIStudio.Wpf.Flowchart/ViewModels/MiddleFlowNodeData.cs b/AIStudio.Wpf.Flowchart/ViewModels/MiddleFlowNodeData.cs index 8595563..c1fac05 100644 --- a/AIStudio.Wpf.Flowchart/ViewModels/MiddleFlowNodeData.cs +++ b/AIStudio.Wpf.Flowchart/ViewModels/MiddleFlowNodeData.cs @@ -1,9 +1,22 @@ -using AIStudio.Wpf.DiagramHelper.Models; +using AIStudio.Wpf.DiagramDesigner; namespace AIStudio.Wpf.Flowchart.ViewModels { - public class MiddleFlowNodeData : TitleBindableBase + public class MiddleFlowNodeData : BindableBase { + private string _title; + public string Title + { + get + { + return _title; + } + set + { + SetProperty(ref _title, value); + } + } + public MiddleFlowNodeData() { Title = "审批"; diff --git a/AIStudio.Wpf.Logical/AIStudio.Wpf.Logical.csproj b/AIStudio.Wpf.Logical/AIStudio.Wpf.Logical.csproj index 2d4aae7..eb75742 100644 --- a/AIStudio.Wpf.Logical/AIStudio.Wpf.Logical.csproj +++ b/AIStudio.Wpf.Logical/AIStudio.Wpf.Logical.csproj @@ -5,7 +5,7 @@ - + diff --git a/AIStudio.Wpf.Logical/Themes/LogicalGateItemViewModel.xaml b/AIStudio.Wpf.Logical/Themes/LogicalGateItemViewModel.xaml index 709c8cd..70cf0d7 100644 --- a/AIStudio.Wpf.Logical/Themes/LogicalGateItemViewModel.xaml +++ b/AIStudio.Wpf.Logical/Themes/LogicalGateItemViewModel.xaml @@ -3,16 +3,12 @@ xmlns:local="clr-namespace:AIStudio.Wpf.Logical" xmlns:viewmodel="clr-namespace:AIStudio.Wpf.Logical.ViewModels" xmlns:gif="http://wpfanimatedgif.codeplex.com" - xmlns:converter="clr-namespace:AIStudio.Wpf.DiagramHelper.Converters;assembly=AIStudio.Wpf.DiagramHelper" - xmlns:controls="clr-namespace:AIStudio.Wpf.DiagramHelper.Controls;assembly=AIStudio.Wpf.DiagramHelper" xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram" - xmlns:Fluent="urn:fluent-ribbon" - xmlns:s="clr-namespace:AIStudio.Wpf.DiagramDesigner;assembly=AIStudio.Wpf.DiagramDesigner" xmlns:i="http://schemas.microsoft.com/xaml/behaviors"> - - - + + + diff --git a/AIStudio.Wpf.Logical/ViewModels/LinkPointDesignerItemData.cs b/AIStudio.Wpf.Logical/ViewModels/LinkPointDesignerItemData.cs index 4ef9727..91e0544 100644 --- a/AIStudio.Wpf.Logical/ViewModels/LinkPointDesignerItemData.cs +++ b/AIStudio.Wpf.Logical/ViewModels/LinkPointDesignerItemData.cs @@ -1,4 +1,4 @@ -using AIStudio.Wpf.DiagramHelper.Models; +using AIStudio.Wpf.DiagramDesigner; namespace AIStudio.Wpf.Logical.ViewModels { @@ -8,8 +8,21 @@ namespace AIStudio.Wpf.Logical.ViewModels /// the popup to be cancelled without applying any changes to the calling ViewModel /// whos data will be updated if the PopupWindow.xaml window is closed successfully /// - public class LinkPointDesignerItemData : TitleBindableBase + public class LinkPointDesignerItemData : BindableBase { + private string _title; + public string Title + { + get + { + return _title; + } + set + { + SetProperty(ref _title, value); + } + } + public LinkPointDesignerItemData(LinkPoint linkPoint) { this.LinkPoint = linkPoint; diff --git a/AIStudio.Wpf.Logical/ViewModels/LogicalGateItemData.cs b/AIStudio.Wpf.Logical/ViewModels/LogicalGateItemData.cs index 26f05ef..a9a361c 100644 --- a/AIStudio.Wpf.Logical/ViewModels/LogicalGateItemData.cs +++ b/AIStudio.Wpf.Logical/ViewModels/LogicalGateItemData.cs @@ -1,5 +1,4 @@ -using AIStudio.Wpf.DiagramHelper.Models; -using System.Collections.Generic; +using System.Collections.Generic; using System.Collections.ObjectModel; using AIStudio.Wpf.DiagramDesigner; @@ -11,8 +10,21 @@ namespace AIStudio.Wpf.Logical.ViewModels /// the popup to be cancelled without applying any changes to the calling ViewModel /// whos data will be updated if the PopupWindow.xaml window is closed successfully /// - public class LogicalGateItemData : TitleBindableBase + public class LogicalGateItemData : BindableBase { + private string _title; + public string Title + { + get + { + return _title; + } + set + { + SetProperty(ref _title, value); + } + } + public LogicalGateItemData(IEnumerable inputvalues) { this.InputValues = new ObservableCollection(inputvalues); diff --git a/AIStudio.Wpf.Logical/ViewModels/LogicalGateItemViewModel.cs b/AIStudio.Wpf.Logical/ViewModels/LogicalGateItemViewModel.cs index d0cab31..e63845f 100644 --- a/AIStudio.Wpf.Logical/ViewModels/LogicalGateItemViewModel.cs +++ b/AIStudio.Wpf.Logical/ViewModels/LogicalGateItemViewModel.cs @@ -1,10 +1,9 @@ -using AIStudio.Wpf.DiagramHelper; -using AIStudio.Wpf.DiagramHelper.Services; -using System; +using System; using System.Collections.ObjectModel; using System.Linq; using System.Windows.Media; using AIStudio.Wpf.DiagramDesigner; +using AIStudio.Wpf.DiagramDesigner.Services; namespace AIStudio.Wpf.Logical.ViewModels { diff --git a/AIStudio.Wpf.Logical/ViewModels/ValueDesignerItemData.cs b/AIStudio.Wpf.Logical/ViewModels/ValueDesignerItemData.cs index 32fdee6..27eb099 100644 --- a/AIStudio.Wpf.Logical/ViewModels/ValueDesignerItemData.cs +++ b/AIStudio.Wpf.Logical/ViewModels/ValueDesignerItemData.cs @@ -1,4 +1,4 @@ -using AIStudio.Wpf.DiagramHelper.Models; +using AIStudio.Wpf.DiagramDesigner; namespace AIStudio.Wpf.Logical.ViewModels { @@ -8,8 +8,21 @@ namespace AIStudio.Wpf.Logical.ViewModels /// the popup to be cancelled without applying any changes to the calling ViewModel /// whos data will be updated if the PopupWindow.xaml window is closed successfully /// - public class ValueDesignerItemData : TitleBindableBase + public class ValueDesignerItemData : BindableBase { + private string _title; + public string Title + { + get + { + return _title; + } + set + { + SetProperty(ref _title, value); + } + } + public ValueDesignerItemData(double value) { this.Value = value; diff --git a/AIStudio.Wpf.SFC/AIStudio.Wpf.SFC.csproj b/AIStudio.Wpf.SFC/AIStudio.Wpf.SFC.csproj index 5e54e3e..b8bf641 100644 --- a/AIStudio.Wpf.SFC/AIStudio.Wpf.SFC.csproj +++ b/AIStudio.Wpf.SFC/AIStudio.Wpf.SFC.csproj @@ -9,7 +9,7 @@ - + diff --git a/AIStudio.Wpf.SFC/Themes/SFCNode.xaml b/AIStudio.Wpf.SFC/Themes/SFCNode.xaml index 928bdd2..f5bd3d2 100644 --- a/AIStudio.Wpf.SFC/Themes/SFCNode.xaml +++ b/AIStudio.Wpf.SFC/Themes/SFCNode.xaml @@ -1,13 +1,12 @@  + xmlns:local="clr-namespace:AIStudio.Wpf.SFC"> - - - + + + diff --git a/AIStudio.Wpf.SFC/ViewModels/SFCActionNodeData.cs b/AIStudio.Wpf.SFC/ViewModels/SFCActionNodeData.cs index 91897b4..94c133a 100644 --- a/AIStudio.Wpf.SFC/ViewModels/SFCActionNodeData.cs +++ b/AIStudio.Wpf.SFC/ViewModels/SFCActionNodeData.cs @@ -1,10 +1,4 @@ -using AIStudio.Wpf.DiagramHelper.Commands; -using AIStudio.Wpf.DiagramHelper.Models; -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Windows.Input; -using AIStudio.Wpf.DiagramDesigner; +using AIStudio.Wpf.DiagramDesigner; namespace AIStudio.Wpf.SFC.ViewModels { @@ -14,8 +8,21 @@ namespace AIStudio.Wpf.SFC.ViewModels /// the popup to be cancelled without applying any changes to the calling ViewModel /// whos data will be updated if the PopupWindow.xaml window is closed successfully /// - public class SFCActionNodeData : TitleBindableBase + public class SFCActionNodeData : BindableBase { + private string _title; + public string Title + { + get + { + return _title; + } + set + { + SetProperty(ref _title, value); + } + } + public SFCActionNodeData(LinkPoint linkPoint, string expression) { Title = "输出动作"; diff --git a/AIStudio.Wpf.SFC/ViewModels/SFCConditionNodeData.cs b/AIStudio.Wpf.SFC/ViewModels/SFCConditionNodeData.cs index e550811..22e88b1 100644 --- a/AIStudio.Wpf.SFC/ViewModels/SFCConditionNodeData.cs +++ b/AIStudio.Wpf.SFC/ViewModels/SFCConditionNodeData.cs @@ -1,7 +1,4 @@ -using AIStudio.Wpf.DiagramHelper.Commands; -using AIStudio.Wpf.DiagramHelper.Models; -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Collections.ObjectModel; using System.Windows.Input; using AIStudio.Wpf.DiagramDesigner; @@ -14,8 +11,20 @@ namespace AIStudio.Wpf.SFC.ViewModels /// the popup to be cancelled without applying any changes to the calling ViewModel /// whos data will be updated if the PopupWindow.xaml window is closed successfully /// - public class SFCConditionNodeData : TitleBindableBase + public class SFCConditionNodeData : BindableBase { + private string _title; + public string Title + { + get + { + return _title; + } + set + { + SetProperty(ref _title, value); + } + } public SFCConditionNodeData(IEnumerable linkPoint, string expression) { Title = "转移条件"; @@ -54,7 +63,7 @@ namespace AIStudio.Wpf.SFC.ViewModels { get { - return this._addCommand ?? (this._addCommand = new DelegateCommand(para => this.AddExecuted(para))); + return this._addCommand ?? (this._addCommand = new SimpleCommand(para => { return true; }, para => this.AddExecuted(para))); } } @@ -63,7 +72,7 @@ namespace AIStudio.Wpf.SFC.ViewModels { get { - return this._deleteCommand ?? (this._deleteCommand = new DelegateCommand(para => this.DeleteExecuted(para))); + return this._deleteCommand ?? (this._deleteCommand = new SimpleCommand(para => { return true; }, para => this.DeleteExecuted(para))); } } diff --git a/AIStudio.Wpf.SFC/ViewModels/SFCNode.cs b/AIStudio.Wpf.SFC/ViewModels/SFCNode.cs index d173559..04f836e 100644 --- a/AIStudio.Wpf.SFC/ViewModels/SFCNode.cs +++ b/AIStudio.Wpf.SFC/ViewModels/SFCNode.cs @@ -4,8 +4,7 @@ using System.ComponentModel; using System.Linq; using System.Windows.Media; using AIStudio.Wpf.DiagramDesigner; -using AIStudio.Wpf.DiagramHelper; -using AIStudio.Wpf.DiagramHelper.Services; +using AIStudio.Wpf.DiagramDesigner.Services; using AIStudio.Wpf.SFC.Models; namespace AIStudio.Wpf.SFC.ViewModels diff --git a/AIStudio.Wpf.SFC/ViewModels/Simulate_SolenoidViewModelData.cs b/AIStudio.Wpf.SFC/ViewModels/Simulate_SolenoidViewModelData.cs index f63ede2..c15e6ec 100644 --- a/AIStudio.Wpf.SFC/ViewModels/Simulate_SolenoidViewModelData.cs +++ b/AIStudio.Wpf.SFC/ViewModels/Simulate_SolenoidViewModelData.cs @@ -1,13 +1,22 @@ -using AIStudio.Wpf.DiagramHelper.Models; -using System; -using System.Collections.Generic; -using System.Text; -using AIStudio.Wpf.DiagramDesigner; +using AIStudio.Wpf.DiagramDesigner; namespace AIStudio.Wpf.SFC.ViewModels { - public class Simulate_SolenoidViewModelData : TitleBindableBase + public class Simulate_SolenoidViewModelData : BindableBase { + private string _title; + public string Title + { + get + { + return _title; + } + set + { + SetProperty(ref _title, value); + } + } + public Simulate_SolenoidViewModelData(LinkPoint dILinkPoint, LinkPoint dOLinkPoint) { Title = "阀门"; diff --git a/AIStudio.Wpf.SFC/ViewModels/Simulate_TankViewModelData.cs b/AIStudio.Wpf.SFC/ViewModels/Simulate_TankViewModelData.cs index 793a860..b82c3dd 100644 --- a/AIStudio.Wpf.SFC/ViewModels/Simulate_TankViewModelData.cs +++ b/AIStudio.Wpf.SFC/ViewModels/Simulate_TankViewModelData.cs @@ -1,13 +1,22 @@ -using AIStudio.Wpf.DiagramHelper.Models; -using System; -using System.Collections.Generic; -using System.Text; -using AIStudio.Wpf.DiagramDesigner; +using AIStudio.Wpf.DiagramDesigner; namespace AIStudio.Wpf.SFC.ViewModels { - public class Simulate_TankViewModelData : TitleBindableBase + public class Simulate_TankViewModelData : BindableBase { + private string _title; + public string Title + { + get + { + return _title; + } + set + { + SetProperty(ref _title, value); + } + } + public Simulate_TankViewModelData(LinkPoint linkPoint) { Title = "容器";