From d44d530b977bbd138d9c7cba6c60b5b53c4f5fe9 Mon Sep 17 00:00:00 2001 From: ArunKumarSF4054 Date: Mon, 18 Mar 2024 16:03:45 +0530 Subject: [PATCH 1/5] WPF-875642-SamplesAdded ForKB --- README.md | 3 + .../CustomDataSource/CustomDataSource.sln | 28 ++ .../CustomDataSource/App.config | 6 + .../CustomDataSource/App.xaml | 9 + .../CustomDataSource/App.xaml.cs | 17 + .../CustomDataSource/CustomDataSource.csproj | 116 +++++ .../CustomDataSource/MainWindow.xaml | 83 ++++ .../CustomDataSource/MainWindow.xaml.cs | 433 ++++++++++++++++++ .../CustomDataSource/Model/ItemInfo.cs | 63 +++ .../CustomDataSource/NodeCreate.xaml | 27 ++ .../CustomDataSource/NodeCreate.xaml.cs | 50 ++ .../Properties/AssemblyInfo.cs | 55 +++ .../Properties/Resources.Designer.cs | 71 +++ .../Properties/Resources.resx | 117 +++++ .../Properties/Settings.Designer.cs | 30 ++ .../Properties/Settings.settings | 7 + .../CustomDataSource/packages.config | 6 + .../Custom Layout Algorithm/README.md | 13 + .../MouseMiddleButton/MouseMiddleButton.sln | 25 + .../MouseMiddleButton/App.config | 6 + .../MouseMiddleButton/App.xaml | 9 + .../MouseMiddleButton/App.xaml.cs | 17 + .../MouseMiddleButton/MainWindow.xaml | 44 ++ .../MouseMiddleButton/MainWindow.xaml.cs | 69 +++ .../MouseMiddleButton.csproj | 108 +++++ .../Properties/AssemblyInfo.cs | 55 +++ .../Properties/Resources.Designer.cs | 71 +++ .../Properties/Resources.resx | 117 +++++ .../Properties/Settings.Designer.cs | 30 ++ .../Properties/Settings.settings | 7 + .../MouseMiddleButton/packages.config | 6 + Samples/Panning/README.md | 14 + 32 files changed, 1712 insertions(+) create mode 100644 Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource.sln create mode 100644 Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/App.config create mode 100644 Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/App.xaml create mode 100644 Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/App.xaml.cs create mode 100644 Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/CustomDataSource.csproj create mode 100644 Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/MainWindow.xaml create mode 100644 Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/MainWindow.xaml.cs create mode 100644 Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Model/ItemInfo.cs create mode 100644 Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/NodeCreate.xaml create mode 100644 Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/NodeCreate.xaml.cs create mode 100644 Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Properties/AssemblyInfo.cs create mode 100644 Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Properties/Resources.Designer.cs create mode 100644 Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Properties/Resources.resx create mode 100644 Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Properties/Settings.Designer.cs create mode 100644 Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Properties/Settings.settings create mode 100644 Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/packages.config create mode 100644 Samples/DataSource/Custom Layout Algorithm/README.md create mode 100644 Samples/Panning/MouseMiddleButton/MouseMiddleButton.sln create mode 100644 Samples/Panning/MouseMiddleButton/MouseMiddleButton/App.config create mode 100644 Samples/Panning/MouseMiddleButton/MouseMiddleButton/App.xaml create mode 100644 Samples/Panning/MouseMiddleButton/MouseMiddleButton/App.xaml.cs create mode 100644 Samples/Panning/MouseMiddleButton/MouseMiddleButton/MainWindow.xaml create mode 100644 Samples/Panning/MouseMiddleButton/MouseMiddleButton/MainWindow.xaml.cs create mode 100644 Samples/Panning/MouseMiddleButton/MouseMiddleButton/MouseMiddleButton.csproj create mode 100644 Samples/Panning/MouseMiddleButton/MouseMiddleButton/Properties/AssemblyInfo.cs create mode 100644 Samples/Panning/MouseMiddleButton/MouseMiddleButton/Properties/Resources.Designer.cs create mode 100644 Samples/Panning/MouseMiddleButton/MouseMiddleButton/Properties/Resources.resx create mode 100644 Samples/Panning/MouseMiddleButton/MouseMiddleButton/Properties/Settings.Designer.cs create mode 100644 Samples/Panning/MouseMiddleButton/MouseMiddleButton/Properties/Settings.settings create mode 100644 Samples/Panning/MouseMiddleButton/MouseMiddleButton/packages.config create mode 100644 Samples/Panning/README.md diff --git a/README.md b/README.md index ecc8fb13..3d50d4f6 100644 --- a/README.md +++ b/README.md @@ -130,4 +130,7 @@ This repository contains the samples that demonstrate the functionalities of Dia Swimlane + + Swimlane + diff --git a/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource.sln b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource.sln new file mode 100644 index 00000000..31d4cfd1 --- /dev/null +++ b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34309.116 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CustomDataSource", "CustomDataSource\CustomDataSource.csproj", "{2115284A-6B1C-4173-A879-60D9C9BE7981}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + Release-Xml|Any CPU = Release-Xml|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2115284A-6B1C-4173-A879-60D9C9BE7981}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2115284A-6B1C-4173-A879-60D9C9BE7981}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2115284A-6B1C-4173-A879-60D9C9BE7981}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2115284A-6B1C-4173-A879-60D9C9BE7981}.Release|Any CPU.Build.0 = Release|Any CPU + {2115284A-6B1C-4173-A879-60D9C9BE7981}.Release-Xml|Any CPU.ActiveCfg = Release|Any CPU + {2115284A-6B1C-4173-A879-60D9C9BE7981}.Release-Xml|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {079F52C6-230D-477D-B04E-7B6A22DDB7FA} + EndGlobalSection +EndGlobal diff --git a/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/App.config b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/App.config new file mode 100644 index 00000000..b50c74f3 --- /dev/null +++ b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/App.xaml b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/App.xaml new file mode 100644 index 00000000..3debb701 --- /dev/null +++ b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/App.xaml.cs b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/App.xaml.cs new file mode 100644 index 00000000..edb78d71 --- /dev/null +++ b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/App.xaml.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace CustomDataSource +{ + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application + { + } +} diff --git a/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/CustomDataSource.csproj b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/CustomDataSource.csproj new file mode 100644 index 00000000..4cac26a8 --- /dev/null +++ b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/CustomDataSource.csproj @@ -0,0 +1,116 @@ + + + + + Debug + AnyCPU + {2115284A-6B1C-4173-A879-60D9C9BE7981} + WinExe + CustomDataSource + CustomDataSource + v4.6.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\Syncfusion.Licensing.24.2.9\lib\net46\Syncfusion.Licensing.dll + + + ..\packages\Syncfusion.SfDiagram.WPF.24.2.9\lib\net46\Syncfusion.SfDiagram.WPF.dll + + + ..\packages\Syncfusion.Shared.WPF.24.2.9\lib\net46\Syncfusion.Shared.WPF.dll + + + + + + + + + + + 4.0 + + + + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + App.xaml + Code + + + MainWindow.xaml + Code + + + Designer + MSBuild:Compile + + + + + + NodeCreate.xaml + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + \ No newline at end of file diff --git a/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/MainWindow.xaml b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/MainWindow.xaml new file mode 100644 index 00000000..6c1a1bb0 --- /dev/null +++ b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/MainWindow.xaml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/MainWindow.xaml.cs b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/MainWindow.xaml.cs new file mode 100644 index 00000000..eff435f5 --- /dev/null +++ b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/MainWindow.xaml.cs @@ -0,0 +1,433 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.IO.Packaging; +using System.Linq; +using System.Reflection.Emit; +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 System.Xml.Linq; +using CustomDataSource.Model; +using Syncfusion.UI.Xaml.Diagram; +using Syncfusion.UI.Xaml.Diagram.Controls; +using Syncfusion.UI.Xaml.Diagram.Serializer; +using Syncfusion.Windows.Shared; + +namespace CustomDataSource +{ + /// + /// Interaction logic for MainWindow.xaml + /// + public partial class MainWindow : Window + { + public MainWindow() + { + InitializeComponent(); + diagram.Nodes = new NodeCollection(); + diagram.Connectors = new ConnectorCollection(); + diagram.HorizontalRuler = new Ruler(); + diagram.VerticalRuler = new Ruler() { Orientation = Orientation.Vertical }; + (diagram.Info as IGraphInfo).ViewPortChangedEvent += MainWindow_ViewPortChangedEvent; + + } + + private void MainWindow_ViewPortChangedEvent(object sender, ChangeEventArgs args) + { + if (diagram.IsLoaded) + { + diagram.ViewPortCentreX = args.NewValue.ViewPort.Width / 2; + diagram.ViewPortCentreY = args.NewValue.ViewPort.Y; + } + } + + private void diagram_Loaded(object sender, RoutedEventArgs e) + { + diagram.CustomData = GetData(); + + CustomUpdateLayout(); + + (diagram.Info as IGraphInfo).Commands.FitToPage.Execute(null); + } + + #region Helper Methods + + private void CustomUpdateLayout() + { + SetLevelForNodeData(); + + CreateDiagramUsingData(); + + UpdatePosition(); + + CreateConnection(); + } + + /// + /// Set the DataItems for the Layout. + /// + private DataItems GetData() + { + DataItems ItemsInfo = new DataItems(); + + ItemsInfo.Add(new ItemInfo() + { + Id = "1", + Name = "Start", + Text = "1", + }); + + ItemsInfo.Add(new ItemInfo() + { + Id = "2", + Name = "Invoice Entry", + ParentId = new List { "1" }, + Text = "1", + }); + + ItemsInfo.Add(new ItemInfo() + { + Id = "3", + Name = "Confirm Payment Received", + ParentId = new List { "1" }, + BranchDirection = "Right", + Text = "1", + }); + + ItemsInfo.Add(new ItemInfo() + { + Id = "4", + + Name = "Check Customer Payment", + ParentId = new List { "2" }, + Text = "1", + + }); + ItemsInfo.Add(new ItemInfo() + { + Id = "5", + + Name = "Credit Memo Entry", + ParentId = new List { "4" }, + Text = "1", + + }); + ItemsInfo.Add(new ItemInfo() + { + Id = "6", + Name = "Refund Customer", + ParentId = new List { "5" }, + Text = "1", + + }); + ItemsInfo.Add(new ItemInfo() + { + Id = "8", + Name = "Refund with standard Voucher", + ParentId = new List { "3" }, + + Text = "5", + + }); + ItemsInfo.Add(new ItemInfo() + { + Id = "9", + Name = "Complete Payment Customer Memo", + ParentId = new List { "8" }, + Text = "5", + + }); + ItemsInfo.Add(new ItemInfo() + { + Id = "10", + Name = "Reject", + ParentId = new List { "9" }, + BranchDirection = "Right", + Text = "4", + + }); + ItemsInfo.Add(new ItemInfo() + { + Id = "11", + Name = "Approve Invoice", + ParentId = new List { "9" }, + Text = "5", + + }); + ItemsInfo.Add(new ItemInfo() + { + Id = "12", + Name = "Credit Memo Creation", + ParentId = new List { "11" }, + Text = "1", + + + }); + ItemsInfo.Add(new ItemInfo() + { + Id = "13", + Name = "Fill Credit Memo", + ParentId = new List { "12" }, + Text = "1", + + }); + ItemsInfo.Add(new ItemInfo() + { + Id = "14", + Name = "Re-Issuing the invoice", + ParentId = new List { "13", "6" }, + BranchDirection = "Left", + Text = "1", + }); + ItemsInfo.Add(new ItemInfo() + { + Id = "15", + Name = "End", + ParentId = new List { "14" }, + Text = "4", + }); + return ItemsInfo; + } + + /// + /// Set Level for each nodes to render them based on the level used to position the nodes. + /// + private void SetLevelForNodeData() + { + foreach (ItemInfo parentItem in diagram.CustomData as IEnumerable) + { + if ((parentItem as ItemInfo).ParentId == null) + { + (parentItem as ItemInfo).level = "Root"; + } + else + { + foreach (var parent in (parentItem as ItemInfo).ParentId) + { + foreach (ItemInfo childItem in diagram.CustomData as IEnumerable) + { + if ((childItem as ItemInfo).Id == parent) + { + if ((childItem as ItemInfo).level == "Root") + { + (parentItem as ItemInfo).level = "Level1"; + } + else + { + string substring = (childItem as ItemInfo).level.Substring(5); + int substringvalue = int.Parse(substring); + substringvalue += 1; + (parentItem as ItemInfo).level = "Level" + substringvalue.ToString(); + + } + } + } + } + } + } + } + + /// + /// Create Node based on the Data. + /// + private void CreateDiagramUsingData() + { + foreach (ItemInfo item in diagram.CustomData as IEnumerable) + { + NodeViewModel node = new NodeViewModel() + { + UnitHeight = 60, + UnitWidth = 250, + Content = item, + }; + + if (node != null) + { + if ((node.Content as ItemInfo).Id.Equals("1") || (node.Content as ItemInfo).Id.ToString().Equals("15")) + { + //Updating content template to the start and end nodes + node.ContentTemplate = Application.Current.MainWindow.Resources["EllipseNodeContentTemplate"] as DataTemplate; + } + else + { + //Updating content template to the node + + node.ContentTemplate = Application.Current.MainWindow.Resources["newCretedNode"] as DataTemplate; + } + } + + (diagram.Nodes as NodeCollection).Add(node); + } + } + + /// + /// Update the positions for the nodes + /// + private void UpdatePosition() + { + foreach(NodeViewModel node in diagram.Nodes as IEnumerable) + { + if ((node.Content as ItemInfo).ParentId == null) + { + node.OffsetX = diagram.ViewPortCentreX; + node.OffsetY = diagram.ViewPortCentreY + 100; + } + else + { + + foreach (NodeViewModel nodes in diagram.Nodes as IEnumerable) + { + List ParentIDs = new List(); + string ParentID = string.Empty; + foreach (var parentID in (node.Content as ItemInfo).ParentId) + { + ParentIDs.Add(int.Parse(parentID.ToString())); + ParentID = ParentIDs.Max().ToString(); + } + + //This condition for update the offset value for the node from the parent node. + if (ParentID == ((nodes as NodeViewModel).Content as ItemInfo).Id) + { + if ((node.Content as ItemInfo).BranchDirection == "Right") + { + node.OffsetX = (nodes as NodeViewModel).OffsetX + ((nodes as NodeViewModel).UnitWidth / 2) + diagram.HorizontalSpacing + (node.UnitWidth / 2); + node.OffsetY = (nodes as NodeViewModel).OffsetY + ((nodes as NodeViewModel).UnitHeight / 2) + diagram.VerticalSpacing + (node.UnitHeight / 2); + } + else if ((node.Content as ItemInfo).BranchDirection == "Left") + { + node.OffsetX = (nodes as NodeViewModel).OffsetX - ((nodes as NodeViewModel).UnitWidth / 2) - diagram.HorizontalSpacing - (node.UnitWidth / 2); + node.OffsetY = (nodes as NodeViewModel).OffsetY + ((nodes as NodeViewModel).UnitHeight / 2) + diagram.VerticalSpacing + (node.UnitHeight / 2); + } + else + { + node.OffsetX = (nodes as NodeViewModel).OffsetX; + node.OffsetY = (nodes as NodeViewModel).OffsetY + ((nodes as NodeViewModel).UnitHeight / 2) + diagram.VerticalSpacing + (node.UnitHeight / 2); + } + } + } + } + + } + } + + /// + /// Create the connection between the nodes + /// + private void CreateConnection() + { + foreach (NodeViewModel node in diagram.Nodes as IEnumerable) + { + node.ID = (node.Content as ItemInfo).Id; + if ((node.Content as ItemInfo).ParentId != null) + { + foreach (var ParentID in (node.Content as ItemInfo).ParentId) + { + ConnectorViewModel nodeToNodeConnection = new ConnectorViewModel() + { + + SourceNodeID = ParentID, + TargetNodeID = (node.Content as ItemInfo).Id, + Annotations = new ObservableCollection() + { + new AnnotationEditorViewModel() + { + Content="1" + } + } + }; + + (diagram.Connectors as ConnectorCollection).Add(nodeToNodeConnection); + + } + } + } + } + + #endregion + } + + public class CustomDiagram : SfDiagram + { + private DataItems _customData; + private double _horizontalSpacing = 60; + private double _verticalSpacing = 100; + private double _viewPortCentreX = 0; + private double _viewPortCentreY = 0; + + public DataItems CustomData + { + get + { + return _customData; + } + set + { + _customData = value; + OnPropertyChanged(nameof(CustomData)); + } + } + + + + public double HorizontalSpacing + { + get + { + return _horizontalSpacing; + } + set + { + _horizontalSpacing = value; + OnPropertyChanged(nameof(HorizontalSpacing)); + } + } + + public double VerticalSpacing + { + get + { + return _verticalSpacing; + } + set + { + _verticalSpacing = value; + OnPropertyChanged(nameof(VerticalSpacing)); + } + } + + public double ViewPortCentreX + { + get + { + return _viewPortCentreX; + } + set + { + _viewPortCentreX = value; + OnPropertyChanged(nameof(ViewPortCentreX)); + } + } + + public double ViewPortCentreY + { + get + { + return _viewPortCentreY; + } + set + { + _viewPortCentreY = value; + OnPropertyChanged(nameof(ViewPortCentreY)); + } + } + } +} + diff --git a/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Model/ItemInfo.cs b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Model/ItemInfo.cs new file mode 100644 index 00000000..68f54ee9 --- /dev/null +++ b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Model/ItemInfo.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; + +namespace CustomDataSource.Model +{ + public class ItemInfo + { + private string _shape; + private double _width = 250; + private double _height = 60; + public ItemInfo() + { + + } + + public string Id { get; set; } + public string Name { get; set; } + + public string Label { get; set; } + public List ParentId { get; set; } + public string _Shape { + get + { + return _shape; + } + set + { + _shape = value; + + } + } + public double Height + { + get + { + return _height; + } + set { _height = value; } + } + public double Width + { + get + { + return _width; + } + set { _width = value; } + } + + public string level { get; set; } + + public string BranchDirection { get; set; } + public object Text { get; set; } + } + public class DataItems : ObservableCollection + { + + } +} diff --git a/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/NodeCreate.xaml b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/NodeCreate.xaml new file mode 100644 index 00000000..1f8d0721 --- /dev/null +++ b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/NodeCreate.xaml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + diff --git a/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/NodeCreate.xaml.cs b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/NodeCreate.xaml.cs new file mode 100644 index 00000000..df7e93af --- /dev/null +++ b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/NodeCreate.xaml.cs @@ -0,0 +1,50 @@ +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; + +namespace CustomDataSource +{ + /// + /// Interaction logic for NodeCreate.xaml + /// + public partial class NodeCreate : UserControl + { + public NodeCreate() + { + InitializeComponent(); + var ellipseBrush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#4382FF")); + var ellipsesCount = 4; + var initialEllipseDiameter = 70; + var diameterStep = 25; + var opacityStep = 1d / ellipsesCount; + + for (int i = 0; i < ellipsesCount; i++) + { + var size = initialEllipseDiameter + (diameterStep * i); + var ellipse = new Ellipse() + { + Width = size, + Height = size, + Fill = new SolidColorBrush(ellipseBrush.Color) { Opacity = 1 - (i * opacityStep) } + }; + ellipsesPanel.Children.Insert(0, ellipse); + } + + var ellipsesWidth = ellipsesPanel.Children.OfType().Max(x => x.Width); + var offset = (ellipsesWidth / 2) - (mainEllipse.Width / 2); + Canvas.SetLeft(ellipsesPanel, -offset); + Canvas.SetTop(ellipsesPanel, -offset); + } + } +} diff --git a/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Properties/AssemblyInfo.cs b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..18f88f86 --- /dev/null +++ b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("CustomDataSource")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("CustomDataSource")] +[assembly: AssemblyCopyright("Copyright © 2024")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Properties/Resources.Designer.cs b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Properties/Resources.Designer.cs new file mode 100644 index 00000000..09b5c605 --- /dev/null +++ b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace CustomDataSource.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CustomDataSource.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Properties/Resources.resx b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Properties/Settings.Designer.cs b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Properties/Settings.Designer.cs new file mode 100644 index 00000000..432e5526 --- /dev/null +++ b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace CustomDataSource.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Properties/Settings.settings b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Properties/Settings.settings new file mode 100644 index 00000000..033d7a5e --- /dev/null +++ b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/packages.config b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/packages.config new file mode 100644 index 00000000..97a733cc --- /dev/null +++ b/Samples/DataSource/Custom Layout Algorithm/CustomDataSource/CustomDataSource/packages.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Samples/DataSource/Custom Layout Algorithm/README.md b/Samples/DataSource/Custom Layout Algorithm/README.md new file mode 100644 index 00000000..3fa5c49b --- /dev/null +++ b/Samples/DataSource/Custom Layout Algorithm/README.md @@ -0,0 +1,13 @@ +# Flowchart Layout sample +This sample demonstrate how to create a simple diagram using custom layout algorithm + +__*Documentation*__: https://help.syncfusion.com/wpf/diagram/automatic-layouts#flowchart-layout + +## Project pre-requisites +To run this application, you need to have the below two in your system + +* [Visual Studio 2019](https://www.visualstudio.com/wpf-vs) +* [Syncfusion.SfDiagram.WPF](https://www.nuget.org/packages/Syncfusion.SfDiagram.WPF/) nuget package. To install the package using NuGet Package Manager, refer this [link](https://docs.microsoft.com/en-us/nuget/quickstart/install-and-use-a-package-in-visual-studio#nuget-package-manager). + +## Deploying and running the sample +* To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or selectDebug > Start Without Debugging. diff --git a/Samples/Panning/MouseMiddleButton/MouseMiddleButton.sln b/Samples/Panning/MouseMiddleButton/MouseMiddleButton.sln new file mode 100644 index 00000000..669277b7 --- /dev/null +++ b/Samples/Panning/MouseMiddleButton/MouseMiddleButton.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34309.116 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MouseMiddleButton", "MouseMiddleButton\MouseMiddleButton.csproj", "{CFF327B6-3997-41FB-831F-D6621EBDAE9D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CFF327B6-3997-41FB-831F-D6621EBDAE9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CFF327B6-3997-41FB-831F-D6621EBDAE9D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CFF327B6-3997-41FB-831F-D6621EBDAE9D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CFF327B6-3997-41FB-831F-D6621EBDAE9D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {0D45BFE5-D546-4847-A9AF-2AFBAAE1C484} + EndGlobalSection +EndGlobal diff --git a/Samples/Panning/MouseMiddleButton/MouseMiddleButton/App.config b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/App.config new file mode 100644 index 00000000..b50c74f3 --- /dev/null +++ b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Samples/Panning/MouseMiddleButton/MouseMiddleButton/App.xaml b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/App.xaml new file mode 100644 index 00000000..ed661c48 --- /dev/null +++ b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/Samples/Panning/MouseMiddleButton/MouseMiddleButton/App.xaml.cs b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/App.xaml.cs new file mode 100644 index 00000000..d1c4828c --- /dev/null +++ b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/App.xaml.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace MouseMiddleButton +{ + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application + { + } +} diff --git a/Samples/Panning/MouseMiddleButton/MouseMiddleButton/MainWindow.xaml b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/MainWindow.xaml new file mode 100644 index 00000000..49c84cdc --- /dev/null +++ b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/MainWindow.xaml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Samples/Panning/MouseMiddleButton/MouseMiddleButton/MainWindow.xaml.cs b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/MainWindow.xaml.cs new file mode 100644 index 00000000..adcae702 --- /dev/null +++ b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/MainWindow.xaml.cs @@ -0,0 +1,69 @@ +using Syncfusion.UI.Xaml.Diagram; +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; + +namespace MouseMiddleButton +{ + /// + /// Interaction logic for MainWindow.xaml + /// + public partial class MainWindow : Window + { + //To hold the initial location to process pan action. + Point InitialLocation = new Point(); + public MainWindow() + { + InitializeComponent(); + diagram.PreviewMouseMove += Diagram_PreviewMouseMove; + } + + private void Diagram_PreviewMouseMove(object sender, MouseEventArgs e) + { + //Getting current mouse point position of diagram.. + + Point currentMousePoint = e.GetPosition(diagram.Page); + + Point panDelta = new Point(currentMousePoint.X - InitialLocation.X, currentMousePoint.Y - InitialLocation.Y); + + if (e.MiddleButton == MouseButtonState.Pressed) + + { + + //Disabling intelli mouse wheel action when pressing middle button. + + e.Handled = true; + + //Getting current zoom scale value. + + double currentZoomLevel = diagram.ScrollSettings.ScrollInfo.CurrentZoom; + + //Translating pan delta changes to current zoom scale value. + + panDelta.X = panDelta.X * currentZoomLevel; + + panDelta.Y = panDelta.Y * currentZoomLevel; + + //setting hand cursor for panning action + + Mouse.SetCursor(Cursors.Hand); + + //Executing pan process when middle mouse button moving. + + (diagram.Info as IGraphInfo).Commands.Zoom.Execute(new ZoomPositionParameter() { ZoomCommand = ZoomCommand.Pan, PanDelta = panDelta }); + + } + } + } +} diff --git a/Samples/Panning/MouseMiddleButton/MouseMiddleButton/MouseMiddleButton.csproj b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/MouseMiddleButton.csproj new file mode 100644 index 00000000..632f5387 --- /dev/null +++ b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/MouseMiddleButton.csproj @@ -0,0 +1,108 @@ + + + + + Debug + AnyCPU + {CFF327B6-3997-41FB-831F-D6621EBDAE9D} + WinExe + MouseMiddleButton + MouseMiddleButton + v4.6.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\Syncfusion.Licensing.25.1.35\lib\net462\Syncfusion.Licensing.dll + + + ..\packages\Syncfusion.SfDiagram.WPF.25.1.35\lib\net462\Syncfusion.SfDiagram.WPF.dll + + + ..\packages\Syncfusion.Shared.WPF.25.1.35\lib\net462\Syncfusion.Shared.WPF.dll + + + + + + + + + + + 4.0 + + + + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + App.xaml + Code + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + \ No newline at end of file diff --git a/Samples/Panning/MouseMiddleButton/MouseMiddleButton/Properties/AssemblyInfo.cs b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..6fada430 --- /dev/null +++ b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MouseMiddleButton")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MouseMiddleButton")] +[assembly: AssemblyCopyright("Copyright © 2024")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Samples/Panning/MouseMiddleButton/MouseMiddleButton/Properties/Resources.Designer.cs b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/Properties/Resources.Designer.cs new file mode 100644 index 00000000..2946b6db --- /dev/null +++ b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace MouseMiddleButton.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MouseMiddleButton.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Samples/Panning/MouseMiddleButton/MouseMiddleButton/Properties/Resources.resx b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Panning/MouseMiddleButton/MouseMiddleButton/Properties/Settings.Designer.cs b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/Properties/Settings.Designer.cs new file mode 100644 index 00000000..79ff7071 --- /dev/null +++ b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace MouseMiddleButton.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Samples/Panning/MouseMiddleButton/MouseMiddleButton/Properties/Settings.settings b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/Properties/Settings.settings new file mode 100644 index 00000000..033d7a5e --- /dev/null +++ b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Samples/Panning/MouseMiddleButton/MouseMiddleButton/packages.config b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/packages.config new file mode 100644 index 00000000..acef62f8 --- /dev/null +++ b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/packages.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Samples/Panning/README.md b/Samples/Panning/README.md new file mode 100644 index 00000000..7b6c0f1c --- /dev/null +++ b/Samples/Panning/README.md @@ -0,0 +1,14 @@ +# MouseMiddleButton sample + +This sample demonstrates how to pan and scroll the diagram using mouse middle button. + +__*Documentation*__: https://help.syncfusion.com/wpf/diagram/page-settings + +## Project pre-requisites +To run this application, you need to have the below two in your system + +* [Visual Studio 2019](https://www.visualstudio.com/wpf-vs) +* [Syncfusion.SfDiagram.WPF](https://www.nuget.org/packages/Syncfusion.SfDiagram.WPF/) nuget package. To install the package using NuGet Package Manager, refer this [link](https://docs.microsoft.com/en-us/nuget/quickstart/install-and-use-a-package-in-visual-studio#nuget-package-manager). + +## Deploying and running the sample +* To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or selectDebug > Start Without Debugging. From acc3e8882f88d9c88960ddad86e7e1b1388bcdd4 Mon Sep 17 00:00:00 2001 From: ArunKumarSF4054 Date: Tue, 19 Mar 2024 15:58:46 +0530 Subject: [PATCH 2/5] WPF-875642_AdditionalChanges --- .../MouseMiddleButton/MainWindow.xaml | 6 ++++ .../MouseMiddleButton/MainWindow.xaml.cs | 33 ++++++++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/Samples/Panning/MouseMiddleButton/MouseMiddleButton/MainWindow.xaml b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/MainWindow.xaml index 49c84cdc..0bab8a29 100644 --- a/Samples/Panning/MouseMiddleButton/MouseMiddleButton/MainWindow.xaml +++ b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/MainWindow.xaml @@ -39,6 +39,12 @@ UnitHeight="80" UnitWidth="120"/> + + + + + + diff --git a/Samples/Panning/MouseMiddleButton/MouseMiddleButton/MainWindow.xaml.cs b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/MainWindow.xaml.cs index adcae702..629346bb 100644 --- a/Samples/Panning/MouseMiddleButton/MouseMiddleButton/MainWindow.xaml.cs +++ b/Samples/Panning/MouseMiddleButton/MouseMiddleButton/MainWindow.xaml.cs @@ -27,8 +27,20 @@ public MainWindow() { InitializeComponent(); diagram.PreviewMouseMove += Diagram_PreviewMouseMove; + diagram.PreviewMouseWheel += Diagram_PreviewMouseWheel; + diagram.PreviewMouseDown += Diagram_PreviewMouseDown; } + private void Diagram_PreviewMouseDown(object sender, MouseButtonEventArgs e) + { + //Getting mouse initial location when middle button pressed down. + InitialLocation = e.GetPosition(diagram.Page); + //Disabling intelli mouse wheel action when pressing middle button. + if (e.MiddleButton == MouseButtonState.Pressed) + { + e.Handled = true; + } + } private void Diagram_PreviewMouseMove(object sender, MouseEventArgs e) { //Getting current mouse point position of diagram.. @@ -38,7 +50,6 @@ private void Diagram_PreviewMouseMove(object sender, MouseEventArgs e) Point panDelta = new Point(currentMousePoint.X - InitialLocation.X, currentMousePoint.Y - InitialLocation.Y); if (e.MiddleButton == MouseButtonState.Pressed) - { //Disabling intelli mouse wheel action when pressing middle button. @@ -65,5 +76,25 @@ private void Diagram_PreviewMouseMove(object sender, MouseEventArgs e) } } + private void Diagram_PreviewMouseWheel(object sender, MouseWheelEventArgs e) + { + ScrollSettings scrollSettings = diagram.ScrollSettings; + //to skip the zooming operation when control+mouse scroll is used + if (Keyboard.Modifiers == ModifierKeys.Control || scrollSettings == null || scrollSettings.ScrollInfo == null) + return; + //current mouse position + double focusX = e.GetPosition(diagram.Page).X; + double focusY = e.GetPosition(diagram.Page).Y; + ZoomCommand zoomCommand = e.Delta > 0 ? ZoomCommand.ZoomIn : ZoomCommand.ZoomOut; + (diagram.Info as IGraphInfo).Commands.Zoom.Execute(new ZoomPositionParameter + { + ZoomCommand = zoomCommand, + ZoomFactor = 0.2, + //to zoom the page with currnet mouse position as a center + FocusPoint = new Point(focusX, focusY), + }); + //Disabling the zooming action when pressing control and mouse wheel. + e.Handled = true; + } } } From 462f4757a5f38df48f5c734540e508f4d13a134f Mon Sep 17 00:00:00 2001 From: ArunKumarSF4054 Date: Tue, 19 Mar 2024 17:27:21 +0530 Subject: [PATCH 3/5] WPF-875642-SampleForGetNodeOrConnectorInMouseMove --- .../NodeConnectorSample.sln | 36 ++++++ .../NodeConnectorSample/App.config | 6 + .../NodeConnectorSample/App.xaml | 9 ++ .../NodeConnectorSample/App.xaml.cs | 17 +++ .../NodeConnectorSample/MainWindow.xaml | 74 +++++++++++ .../NodeConnectorSample/MainWindow.xaml.cs | 67 ++++++++++ .../NodeConnectorSample.csproj | 111 +++++++++++++++++ .../Properties/AssemblyInfo.cs | 55 ++++++++ .../Properties/Resources.Designer.cs | 71 +++++++++++ .../Properties/Resources.resx | 117 ++++++++++++++++++ .../Properties/Settings.Designer.cs | 30 +++++ .../Properties/Settings.settings | 7 ++ .../NodeConnectorSample/packages.config | 6 + Samples/Node/Sample-for-GetNode/README.md | 14 +++ 14 files changed, 620 insertions(+) create mode 100644 Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample.sln create mode 100644 Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/App.config create mode 100644 Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/App.xaml create mode 100644 Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/App.xaml.cs create mode 100644 Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/MainWindow.xaml create mode 100644 Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/MainWindow.xaml.cs create mode 100644 Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/NodeConnectorSample.csproj create mode 100644 Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/Properties/AssemblyInfo.cs create mode 100644 Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/Properties/Resources.Designer.cs create mode 100644 Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/Properties/Resources.resx create mode 100644 Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/Properties/Settings.Designer.cs create mode 100644 Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/Properties/Settings.settings create mode 100644 Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/packages.config create mode 100644 Samples/Node/Sample-for-GetNode/README.md diff --git a/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample.sln b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample.sln new file mode 100644 index 00000000..7e4e7114 --- /dev/null +++ b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample.sln @@ -0,0 +1,36 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34309.116 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NodeConnectorSample", "NodeConnectorSample\NodeConnectorSample.csproj", "{5D9EFDC9-A075-4C73-B01A-DC8909FF37D8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Syncfusion.SfDiagram.WPF_2017", "..\..\..\Desktop\WPFSource\sfdiagram-xaml\WPF\SfDiagram.WPF\Src\Syncfusion.SfDiagram.WPF_2017.csproj", "{E18CFD68-5392-4AFF-BF84-6C7EC1745AC0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + Release-Xml|Any CPU = Release-Xml|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5D9EFDC9-A075-4C73-B01A-DC8909FF37D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5D9EFDC9-A075-4C73-B01A-DC8909FF37D8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5D9EFDC9-A075-4C73-B01A-DC8909FF37D8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5D9EFDC9-A075-4C73-B01A-DC8909FF37D8}.Release|Any CPU.Build.0 = Release|Any CPU + {5D9EFDC9-A075-4C73-B01A-DC8909FF37D8}.Release-Xml|Any CPU.ActiveCfg = Release|Any CPU + {5D9EFDC9-A075-4C73-B01A-DC8909FF37D8}.Release-Xml|Any CPU.Build.0 = Release|Any CPU + {E18CFD68-5392-4AFF-BF84-6C7EC1745AC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E18CFD68-5392-4AFF-BF84-6C7EC1745AC0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E18CFD68-5392-4AFF-BF84-6C7EC1745AC0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E18CFD68-5392-4AFF-BF84-6C7EC1745AC0}.Release|Any CPU.Build.0 = Release|Any CPU + {E18CFD68-5392-4AFF-BF84-6C7EC1745AC0}.Release-Xml|Any CPU.ActiveCfg = Release-Xml|Any CPU + {E18CFD68-5392-4AFF-BF84-6C7EC1745AC0}.Release-Xml|Any CPU.Build.0 = Release-Xml|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {B97C6767-FAED-43F2-ADC6-39BC1565B93B} + EndGlobalSection +EndGlobal diff --git a/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/App.config b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/App.config new file mode 100644 index 00000000..b50c74f3 --- /dev/null +++ b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/App.xaml b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/App.xaml new file mode 100644 index 00000000..3584d864 --- /dev/null +++ b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/App.xaml.cs b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/App.xaml.cs new file mode 100644 index 00000000..6c0439e7 --- /dev/null +++ b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/App.xaml.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace NodeConnectorSample +{ + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application + { + } +} diff --git a/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/MainWindow.xaml b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/MainWindow.xaml new file mode 100644 index 00000000..89991f4c --- /dev/null +++ b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/MainWindow.xaml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/MainWindow.xaml.cs b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/MainWindow.xaml.cs new file mode 100644 index 00000000..c7b49371 --- /dev/null +++ b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/MainWindow.xaml.cs @@ -0,0 +1,67 @@ +using Syncfusion.UI.Xaml.Diagram; +using Syncfusion.UI.Xaml.Diagram.Controls; + +using Syncfusion.UI.Xaml.Diagram.Utility; +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 System.Xml.Linq; +//using Node = Syncfusion.UI.Xaml.Diagram.Node; + +namespace NodeConnectorSample +{ + /// + /// Interaction logic for MainWindow.xaml + /// + public partial class MainWindow : Window + { + public MainWindow() + { + InitializeComponent(); + + //Here diagram is the instance of the SfDiagram. + //Adding MouseMove Event + diagram.MouseMove += Diagram_MouseMove; + } + + + /// + /// Method for executing MouseMoveEvent + /// + + private void Diagram_MouseMove(object sender, MouseEventArgs e) + { + //Caste the e.OriginalSource as Dependency Object. + DependencyObject source = e.OriginalSource as DependencyObject; + + // Find the Visual Parent for Node + var node = source.FindVisualParent(); + + //Find the Visual Parnet for connector + var connector = source.FindVisualParent(); + + + if ((node != null)) + { + //Get the NodeViewModel from the node. + NodeViewModel nodeVM = node.DataContext as NodeViewModel; + } + if(connector != null) + { + //Get the ConnectorViewModel from the connector + ConnectorViewModel connectorVM = connector.DataContext as ConnectorViewModel; + } + } + } +} diff --git a/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/NodeConnectorSample.csproj b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/NodeConnectorSample.csproj new file mode 100644 index 00000000..8abc8dd2 --- /dev/null +++ b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/NodeConnectorSample.csproj @@ -0,0 +1,111 @@ + + + + + Debug + AnyCPU + {5D9EFDC9-A075-4C73-B01A-DC8909FF37D8} + WinExe + NodeConnectorSample + NodeConnectorSample + v4.6.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\Syncfusion.Licensing.25.1.35\lib\net462\Syncfusion.Licensing.dll + + + ..\packages\Syncfusion.Shared.WPF.25.1.35\lib\net462\Syncfusion.Shared.WPF.dll + + + + + + + + + + + 4.0 + + + + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + App.xaml + Code + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + {e18cfd68-5392-4aff-bf84-6c7ec1745ac0} + Syncfusion.SfDiagram.WPF_2017 + + + + \ No newline at end of file diff --git a/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/Properties/AssemblyInfo.cs b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..dd0f9b9f --- /dev/null +++ b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("NodeConnectorSample")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("NodeConnectorSample")] +[assembly: AssemblyCopyright("Copyright © 2024")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/Properties/Resources.Designer.cs b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/Properties/Resources.Designer.cs new file mode 100644 index 00000000..bbd5d7fd --- /dev/null +++ b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace NodeConnectorSample.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("NodeConnectorSample.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/Properties/Resources.resx b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/Properties/Settings.Designer.cs b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/Properties/Settings.Designer.cs new file mode 100644 index 00000000..7dd682b2 --- /dev/null +++ b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace NodeConnectorSample.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/Properties/Settings.settings b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/Properties/Settings.settings new file mode 100644 index 00000000..033d7a5e --- /dev/null +++ b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/packages.config b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/packages.config new file mode 100644 index 00000000..acef62f8 --- /dev/null +++ b/Samples/Node/Sample-for-GetNode/NodeConnectorSample/NodeConnectorSample/packages.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Samples/Node/Sample-for-GetNode/README.md b/Samples/Node/Sample-for-GetNode/README.md new file mode 100644 index 00000000..cb80b2b3 --- /dev/null +++ b/Samples/Node/Sample-for-GetNode/README.md @@ -0,0 +1,14 @@ +# How to get the node or connector in the MouseMove event in WPF Diagram (SfDiagram)? + +This repository contains sample which shows how to get the node or connector in the MouseMove Event. + +__*Documentation*__: https://help.syncfusion.com/wpf/diagram/node + +## Project pre-requisites +To run this application, you need to have the below two in your system + +* [Visual Studio 2019](https://www.visualstudio.com/wpf-vs) +* [Syncfusion.SfDiagram.WPF](https://www.nuget.org/packages/Syncfusion.SfDiagram.WPF/) nuget package. To install the package using NuGet Package Manager, refer this [link](https://docs.microsoft.com/en-us/nuget/quickstart/install-and-use-a-package-in-visual-studio#nuget-package-manager). + +## Deploying and running the sample +* To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or selectDebug > Start Without Debugging. From f7afc5b42c5ba53bdc46160e95aed75478751c0b Mon Sep 17 00:00:00 2001 From: ArunKumarSF4054 Date: Tue, 19 Mar 2024 17:30:30 +0530 Subject: [PATCH 4/5] WPF-875642-AdditionalChanges --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3d50d4f6..8276ff5f 100644 --- a/README.md +++ b/README.md @@ -125,12 +125,12 @@ This repository contains the samples that demonstrate the functionalities of Dia Swimlane - Swimlane + PageBreaks - Swimlane + RubberBandZoom - Swimlane + Panning From 08ec38621a9e71c165d27d4f6064ab4043939527 Mon Sep 17 00:00:00 2001 From: ArunKumarSF4054 Date: Thu, 21 Mar 2024 14:32:48 +0530 Subject: [PATCH 5/5] WPF-875642-ContainerSampleAdded --- .../RestrictNodeFromContainer/README.md | 14 ++ .../RestrictNodeFromContainer.sln | 25 +++ .../RestrictNodeFromContainer/App.config | 6 + .../RestrictNodeFromContainer/App.xaml | 9 ++ .../RestrictNodeFromContainer/App.xaml.cs | 17 ++ .../RestrictNodeFromContainer/MainWindow.xaml | 52 +++++++ .../MainWindow.xaml.cs | 146 ++++++++++++++++++ .../Properties/AssemblyInfo.cs | 55 +++++++ .../Properties/Resources.Designer.cs | 71 +++++++++ .../Properties/Resources.resx | 117 ++++++++++++++ .../Properties/Settings.Designer.cs | 30 ++++ .../Properties/Settings.settings | 7 + .../RestrictNodeFromContainer.csproj | 108 +++++++++++++ .../RestrictNodeFromContainer/packages.config | 6 + 14 files changed, 663 insertions(+) create mode 100644 Samples/Container/RestrictNodeFromContainer/README.md create mode 100644 Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer.sln create mode 100644 Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/App.config create mode 100644 Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/App.xaml create mode 100644 Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/App.xaml.cs create mode 100644 Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/MainWindow.xaml create mode 100644 Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/MainWindow.xaml.cs create mode 100644 Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/Properties/AssemblyInfo.cs create mode 100644 Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/Properties/Resources.Designer.cs create mode 100644 Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/Properties/Resources.resx create mode 100644 Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/Properties/Settings.Designer.cs create mode 100644 Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/Properties/Settings.settings create mode 100644 Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer.csproj create mode 100644 Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/packages.config diff --git a/Samples/Container/RestrictNodeFromContainer/README.md b/Samples/Container/RestrictNodeFromContainer/README.md new file mode 100644 index 00000000..54636968 --- /dev/null +++ b/Samples/Container/RestrictNodeFromContainer/README.md @@ -0,0 +1,14 @@ +# RestrictNodeFromContainer sample + +This sample explains how to restrict node is being removed from its parent container when dragging. + +__*Documentation*__: https://help.syncfusion.com/wpf/diagram/container + +## Project pre-requisites +To run this application, you need to have the below two in your system + +* [Visual Studio 2019](https://www.visualstudio.com/wpf-vs) +* [Syncfusion.SfDiagram.WPF](https://www.nuget.org/packages/Syncfusion.SfDiagram.WPF/) nuget package. To install the package using NuGet Package Manager, refer this [link](https://docs.microsoft.com/en-us/nuget/quickstart/install-and-use-a-package-in-visual-studio#nuget-package-manager). + +## Deploying and running the sample +* To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or selectDebug > Start Without Debugging. diff --git a/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer.sln b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer.sln new file mode 100644 index 00000000..1913898d --- /dev/null +++ b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34309.116 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RestrictNodeFromContainer", "RestrictNodeFromContainer\RestrictNodeFromContainer.csproj", "{69520CAF-FA5D-42BC-9D32-A7ACB2259509}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {69520CAF-FA5D-42BC-9D32-A7ACB2259509}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {69520CAF-FA5D-42BC-9D32-A7ACB2259509}.Debug|Any CPU.Build.0 = Debug|Any CPU + {69520CAF-FA5D-42BC-9D32-A7ACB2259509}.Release|Any CPU.ActiveCfg = Release|Any CPU + {69520CAF-FA5D-42BC-9D32-A7ACB2259509}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {5BAE0B49-4312-4887-B241-C0F900EB9495} + EndGlobalSection +EndGlobal diff --git a/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/App.config b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/App.config new file mode 100644 index 00000000..b50c74f3 --- /dev/null +++ b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/App.xaml b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/App.xaml new file mode 100644 index 00000000..ee439459 --- /dev/null +++ b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/App.xaml.cs b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/App.xaml.cs new file mode 100644 index 00000000..98986893 --- /dev/null +++ b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/App.xaml.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace RestrictNodeFromContainer +{ + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application + { + } +} diff --git a/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/MainWindow.xaml b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/MainWindow.xaml new file mode 100644 index 00000000..1c4203a3 --- /dev/null +++ b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/MainWindow.xaml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/MainWindow.xaml.cs b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/MainWindow.xaml.cs new file mode 100644 index 00000000..675a5301 --- /dev/null +++ b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/MainWindow.xaml.cs @@ -0,0 +1,146 @@ +using Syncfusion.UI.Xaml.Diagram; +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.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 RestrictNodeFromContainer +{ + /// + /// Interaction logic for MainWindow.xaml + /// + public partial class MainWindow : Window + { + public MainWindow() + { + InitializeComponent(); + diagram.Groups = new GroupCollection(); + diagram.Nodes = new NodeCollection(); + (diagram.Info as IGraphInfo).NodeChangedEvent += MainWindow_NodeChangedEvent; + (diagram.Info as IGraphInfo).ItemAdded += MainWindow_ItemAdded; + CustomNodeVM node1 = new CustomNodeVM() + { + ID = "Node1", + UnitWidth = 100, + UnitHeight = 100, + OffsetX = 250, + OffsetY = 260, + //Specify shape to the Node from built-in Shape Dictionary + Shape = this.Resources["Rectangle"], + + }; + + //Add Node to Nodes property of the Diagram + (diagram.Nodes as NodeCollection).Add(node1); + + + CustomNodeVM node2 = new CustomNodeVM() + { + ID = "Node2", + UnitWidth = 100, + UnitHeight = 100, + OffsetX = 380, + OffsetY = 380, + //Specify shape to the Node from built-in Shape Dictionary + Shape = this.Resources["Rectangle"], + + }; + + //Add Node to Nodes property of the Diagram + (diagram.Nodes as NodeCollection).Add(node2); + + + ObservableCollection groups = new ObservableCollection(); + ContainerViewModel container = new ContainerViewModel() + { + Nodes = new ObservableCollection() { node1, node2 }, + UnitHeight = 300, + UnitWidth = 300, + OffsetX = 300, + OffsetY = 300, + }; + container.Header = new ContainerHeaderViewModel() + { + UnitHeight = 30, + + Annotation = new AnnotationEditorViewModel() + { + Content = "Container Header", + FontSize = 16, + FontWeight = FontWeights.Bold, + Foreground = Brushes.Black, + ReadOnly = true, + }, + }; + groups.Add(container); + diagram.Groups = groups; + } + + private void MainWindow_ItemAdded(object sender, ItemAddedEventArgs args) + { + if (args.Item is ContainerViewModel) + { + var container = (ContainerViewModel)args.Item; + if ((container.Nodes as IEnumerable).Any()) + { + foreach (var item in container.Nodes as IEnumerable) + { + var node = item as CustomNodeVM; + //setting parent container to the nodes. + node.ParentContainer = container; + } + } + } + } + + private void MainWindow_NodeChangedEvent(object sender, ChangeEventArgs args) + { + if (args.Item is CustomNodeVM && !(args.Item is ContainerViewModel)) + { + var node = args.Item as CustomNodeVM; + if (node.ParentContainer != null && args.NewValue.InteractionState == NodeChangedInteractionState.Dragging) + { + ContainerViewModel parentcontainer = node.ParentContainer as ContainerViewModel; + Rect parentContainerBounds = (parentcontainer.Info as IContainerInfo).Bounds; + //Setting Node’s parent container bounds region value to BoundaryConstraint property. + args.BoundaryConstraints = new Rect(parentContainerBounds.Left + 5, parentContainerBounds.Top + 45, + parentContainerBounds.Width - 10, parentContainerBounds.Height - 50); + } + } + } + } + public class CustomNodeVM : NodeViewModel + { + private ContainerViewModel parentContainer = null; + + /// + /// Gets or sets the Parent Container of the Node. + /// + public ContainerViewModel ParentContainer + { + get + { + return parentContainer; + } + set + { + if (parentContainer != value) + { + parentContainer = value; + OnPropertyChanged("ParentContainer"); + } + } + } + } +} diff --git a/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/Properties/AssemblyInfo.cs b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..01d0b6dd --- /dev/null +++ b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/Properties/AssemblyInfo.cs @@ -0,0 +1,55 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("RestrictNodeFromContainer")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("RestrictNodeFromContainer")] +[assembly: AssemblyCopyright("Copyright © 2024")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/Properties/Resources.Designer.cs b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/Properties/Resources.Designer.cs new file mode 100644 index 00000000..71e719db --- /dev/null +++ b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace RestrictNodeFromContainer.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RestrictNodeFromContainer.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/Properties/Resources.resx b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/Properties/Settings.Designer.cs b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/Properties/Settings.Designer.cs new file mode 100644 index 00000000..0d867dc6 --- /dev/null +++ b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace RestrictNodeFromContainer.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/Properties/Settings.settings b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/Properties/Settings.settings new file mode 100644 index 00000000..033d7a5e --- /dev/null +++ b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer.csproj b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer.csproj new file mode 100644 index 00000000..807f85b2 --- /dev/null +++ b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer.csproj @@ -0,0 +1,108 @@ + + + + + Debug + AnyCPU + {69520CAF-FA5D-42BC-9D32-A7ACB2259509} + WinExe + RestrictNodeFromContainer + RestrictNodeFromContainer + v4.6.2 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\Syncfusion.Licensing.25.1.35\lib\net462\Syncfusion.Licensing.dll + + + ..\packages\Syncfusion.SfDiagram.WPF.25.1.35\lib\net462\Syncfusion.SfDiagram.WPF.dll + + + ..\packages\Syncfusion.Shared.WPF.25.1.35\lib\net462\Syncfusion.Shared.WPF.dll + + + + + + + + + + + 4.0 + + + + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + App.xaml + Code + + + MainWindow.xaml + Code + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + \ No newline at end of file diff --git a/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/packages.config b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/packages.config new file mode 100644 index 00000000..acef62f8 --- /dev/null +++ b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/packages.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file