From 842e3602bc2f74653181536631b0147a1dfeb4ef Mon Sep 17 00:00:00 2001 From: deepa_thiruppathy Date: Fri, 19 Jan 2024 19:14:24 +0530 Subject: [PATCH 1/3] WPF-865519 Sample is added for How to enable or disable the stencil symbol KB --- Samples/Stencil/EnableDisableSymbol/README.md | 17 ++ .../EnableDisableSymbol/Sample/App.config | 6 + .../EnableDisableSymbol/Sample/App.xaml | 9 + .../EnableDisableSymbol/Sample/App.xaml.cs | 17 ++ .../Sample/EnableDisableStencilSymbol.csproj | 114 ++++++++++ .../Sample/EnableDisableStencilSymbol.sln | 25 +++ .../Sample/Image/image2.png | Bin 0 -> 15727 bytes .../Sample/Image/user_image.png | Bin 0 -> 14934 bytes .../Sample/MainWindow.xaml | 198 ++++++++++++++++++ .../Sample/MainWindow.xaml.cs | 58 +++++ .../Sample/Properties/AssemblyInfo.cs | 55 +++++ .../Sample/Properties/Resources.Designer.cs | 63 ++++++ .../Sample/Properties/Resources.resx | 117 +++++++++++ .../Sample/Properties/Settings.Designer.cs | 26 +++ .../Sample/Properties/Settings.settings | 7 + .../Sample/packages.config | 6 + 16 files changed, 718 insertions(+) create mode 100644 Samples/Stencil/EnableDisableSymbol/README.md create mode 100644 Samples/Stencil/EnableDisableSymbol/Sample/App.config create mode 100644 Samples/Stencil/EnableDisableSymbol/Sample/App.xaml create mode 100644 Samples/Stencil/EnableDisableSymbol/Sample/App.xaml.cs create mode 100644 Samples/Stencil/EnableDisableSymbol/Sample/EnableDisableStencilSymbol.csproj create mode 100644 Samples/Stencil/EnableDisableSymbol/Sample/EnableDisableStencilSymbol.sln create mode 100644 Samples/Stencil/EnableDisableSymbol/Sample/Image/image2.png create mode 100644 Samples/Stencil/EnableDisableSymbol/Sample/Image/user_image.png create mode 100644 Samples/Stencil/EnableDisableSymbol/Sample/MainWindow.xaml create mode 100644 Samples/Stencil/EnableDisableSymbol/Sample/MainWindow.xaml.cs create mode 100644 Samples/Stencil/EnableDisableSymbol/Sample/Properties/AssemblyInfo.cs create mode 100644 Samples/Stencil/EnableDisableSymbol/Sample/Properties/Resources.Designer.cs create mode 100644 Samples/Stencil/EnableDisableSymbol/Sample/Properties/Resources.resx create mode 100644 Samples/Stencil/EnableDisableSymbol/Sample/Properties/Settings.Designer.cs create mode 100644 Samples/Stencil/EnableDisableSymbol/Sample/Properties/Settings.settings create mode 100644 Samples/Stencil/EnableDisableSymbol/Sample/packages.config diff --git a/Samples/Stencil/EnableDisableSymbol/README.md b/Samples/Stencil/EnableDisableSymbol/README.md new file mode 100644 index 00000000..9adfed0e --- /dev/null +++ b/Samples/Stencil/EnableDisableSymbol/README.md @@ -0,0 +1,17 @@ +# How to Enable or Disbale the stencil symbol in WPF Diagram (SfDiagram)? + +This repository contains sample which shows how to Enable/Disable the stencil symbol. + +__*Documentation*__: https://help.syncfusion.com/wpf/diagram/stencil + +## 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. \ No newline at end of file diff --git a/Samples/Stencil/EnableDisableSymbol/Sample/App.config b/Samples/Stencil/EnableDisableSymbol/Sample/App.config new file mode 100644 index 00000000..2d2a12d8 --- /dev/null +++ b/Samples/Stencil/EnableDisableSymbol/Sample/App.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/Samples/Stencil/EnableDisableSymbol/Sample/App.xaml b/Samples/Stencil/EnableDisableSymbol/Sample/App.xaml new file mode 100644 index 00000000..05ddb30f --- /dev/null +++ b/Samples/Stencil/EnableDisableSymbol/Sample/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/Samples/Stencil/EnableDisableSymbol/Sample/App.xaml.cs b/Samples/Stencil/EnableDisableSymbol/Sample/App.xaml.cs new file mode 100644 index 00000000..18a14506 --- /dev/null +++ b/Samples/Stencil/EnableDisableSymbol/Sample/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 EnableDisableStencilSymbol +{ + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application + { + } +} diff --git a/Samples/Stencil/EnableDisableSymbol/Sample/EnableDisableStencilSymbol.csproj b/Samples/Stencil/EnableDisableSymbol/Sample/EnableDisableStencilSymbol.csproj new file mode 100644 index 00000000..148bba88 --- /dev/null +++ b/Samples/Stencil/EnableDisableSymbol/Sample/EnableDisableStencilSymbol.csproj @@ -0,0 +1,114 @@ + + + + + Debug + AnyCPU + {57B5E949-19B7-42A3-B461-921E308ECFDF} + WinExe + StencilSymbolViewModel + StencilSymbolViewModel + v4.6 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + packages\Syncfusion.Licensing.24.1.41\lib\net46\Syncfusion.Licensing.dll + + + packages\Syncfusion.SfDiagram.WPF.24.1.41\lib\net46\Syncfusion.SfDiagram.WPF.dll + + + packages\Syncfusion.Shared.WPF.24.1.41\lib\net46\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/Stencil/EnableDisableSymbol/Sample/EnableDisableStencilSymbol.sln b/Samples/Stencil/EnableDisableSymbol/Sample/EnableDisableStencilSymbol.sln new file mode 100644 index 00000000..359a8aa0 --- /dev/null +++ b/Samples/Stencil/EnableDisableSymbol/Sample/EnableDisableStencilSymbol.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31727.386 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EnableDisableStencilSymbol", "EnableDisableStencilSymbol.csproj", "{57B5E949-19B7-42A3-B461-921E308ECFDF}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {57B5E949-19B7-42A3-B461-921E308ECFDF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {57B5E949-19B7-42A3-B461-921E308ECFDF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {57B5E949-19B7-42A3-B461-921E308ECFDF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {57B5E949-19B7-42A3-B461-921E308ECFDF}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {6F0E6B62-5042-48E0-B135-6386CAEC3768} + EndGlobalSection +EndGlobal diff --git a/Samples/Stencil/EnableDisableSymbol/Sample/Image/image2.png b/Samples/Stencil/EnableDisableSymbol/Sample/Image/image2.png new file mode 100644 index 0000000000000000000000000000000000000000..39aa2a4a34fffa09531cacb311257f58a607ab54 GIT binary patch literal 15727 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 literal 0 HcmV?d00001 diff --git a/Samples/Stencil/EnableDisableSymbol/Sample/Image/user_image.png b/Samples/Stencil/EnableDisableSymbol/Sample/Image/user_image.png new file mode 100644 index 0000000000000000000000000000000000000000..33f06ed86602ddeec61c8a214e6d92ea05ca0aac GIT binary patch literal 14934 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 literal 0 HcmV?d00001 diff --git a/Samples/Stencil/EnableDisableSymbol/Sample/MainWindow.xaml b/Samples/Stencil/EnableDisableSymbol/Sample/MainWindow.xaml new file mode 100644 index 00000000..fc3217ab --- /dev/null +++ b/Samples/Stencil/EnableDisableSymbol/Sample/MainWindow.xaml @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Stencil/EnableDisableSymbol/Sample/MainWindow.xaml.cs b/Samples/Stencil/EnableDisableSymbol/Sample/MainWindow.xaml.cs new file mode 100644 index 00000000..cf02c067 --- /dev/null +++ b/Samples/Stencil/EnableDisableSymbol/Sample/MainWindow.xaml.cs @@ -0,0 +1,58 @@ +using Syncfusion.UI.Xaml.Diagram.Stencil; +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 EnableDisableStencilSymbol +{ + /// + /// Interaction logic for MainWindow.xaml + /// + public partial class MainWindow : Window + { + public MainWindow() + { + InitializeComponent(); + } + } + + /// + /// Represents a custom class to enable or disable the symbol + /// + public class CustomSymbolVM: SymbolViewModel + { + private bool isSymbolEnabled = false; + /// + /// Gets or sets value that indicating whether the symbol can be enabled or disbaled. + /// + public bool IsSymbolEnabled + { + get + { + return isSymbolEnabled; + } + + set + { + if (isSymbolEnabled != value) + { + isSymbolEnabled = value; + OnPropertyChanged("IsSymbolEnabled"); + } + } + } + } + +} diff --git a/Samples/Stencil/EnableDisableSymbol/Sample/Properties/AssemblyInfo.cs b/Samples/Stencil/EnableDisableSymbol/Sample/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..1c2e45df --- /dev/null +++ b/Samples/Stencil/EnableDisableSymbol/Sample/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("EnableDisableStencilSymbol")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("EnableDisableStencilSymbol")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[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/Stencil/EnableDisableSymbol/Sample/Properties/Resources.Designer.cs b/Samples/Stencil/EnableDisableSymbol/Sample/Properties/Resources.Designer.cs new file mode 100644 index 00000000..de1bd3e3 --- /dev/null +++ b/Samples/Stencil/EnableDisableSymbol/Sample/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// 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 EnableDisableStencilSymbol.Properties { + using System; + + + /// + /// 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", "16.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 (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EnableDisableStencilSymbol.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/Stencil/EnableDisableSymbol/Sample/Properties/Resources.resx b/Samples/Stencil/EnableDisableSymbol/Sample/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/Samples/Stencil/EnableDisableSymbol/Sample/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/Stencil/EnableDisableSymbol/Sample/Properties/Settings.Designer.cs b/Samples/Stencil/EnableDisableSymbol/Sample/Properties/Settings.Designer.cs new file mode 100644 index 00000000..f5d3786a --- /dev/null +++ b/Samples/Stencil/EnableDisableSymbol/Sample/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 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 EnableDisableStencilSymbol.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.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/Stencil/EnableDisableSymbol/Sample/Properties/Settings.settings b/Samples/Stencil/EnableDisableSymbol/Sample/Properties/Settings.settings new file mode 100644 index 00000000..033d7a5e --- /dev/null +++ b/Samples/Stencil/EnableDisableSymbol/Sample/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Samples/Stencil/EnableDisableSymbol/Sample/packages.config b/Samples/Stencil/EnableDisableSymbol/Sample/packages.config new file mode 100644 index 00000000..fbb9e977 --- /dev/null +++ b/Samples/Stencil/EnableDisableSymbol/Sample/packages.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file From cda4deb8e6a30226629685519a5aad139459d96f Mon Sep 17 00:00:00 2001 From: deepa_thiruppathy Date: Wed, 31 Jan 2024 14:52:36 +0530 Subject: [PATCH 2/3] Sample added for How to adjust node position placed on page breaks --- .../README.md | 16 +++ .../Sample/App.config | 7 ++ .../Sample/App.xaml | 14 +++ .../Sample/App.xaml.cs | 17 +++ .../Sample/MainWindow.xaml | 86 +++++++++++++ .../Sample/MainWindow.xaml.cs | 118 ++++++++++++++++++ .../Sample/PageBreaksSample.csproj | 108 ++++++++++++++++ .../Sample/PageBreaksSample.sln | 25 ++++ .../Sample/Properties/AssemblyInfo.cs | 55 ++++++++ .../Sample/Properties/Resources.Designer.cs | 71 +++++++++++ .../Sample/Properties/Resources.resx | 117 +++++++++++++++++ .../Sample/Properties/Settings.Designer.cs | 30 +++++ .../Sample/Properties/Settings.settings | 7 ++ .../Sample/packages.config | 6 + 14 files changed, 677 insertions(+) create mode 100644 Samples/PageSettings/How to adjust node placed on page breaks/README.md create mode 100644 Samples/PageSettings/How to adjust node placed on page breaks/Sample/App.config create mode 100644 Samples/PageSettings/How to adjust node placed on page breaks/Sample/App.xaml create mode 100644 Samples/PageSettings/How to adjust node placed on page breaks/Sample/App.xaml.cs create mode 100644 Samples/PageSettings/How to adjust node placed on page breaks/Sample/MainWindow.xaml create mode 100644 Samples/PageSettings/How to adjust node placed on page breaks/Sample/MainWindow.xaml.cs create mode 100644 Samples/PageSettings/How to adjust node placed on page breaks/Sample/PageBreaksSample.csproj create mode 100644 Samples/PageSettings/How to adjust node placed on page breaks/Sample/PageBreaksSample.sln create mode 100644 Samples/PageSettings/How to adjust node placed on page breaks/Sample/Properties/AssemblyInfo.cs create mode 100644 Samples/PageSettings/How to adjust node placed on page breaks/Sample/Properties/Resources.Designer.cs create mode 100644 Samples/PageSettings/How to adjust node placed on page breaks/Sample/Properties/Resources.resx create mode 100644 Samples/PageSettings/How to adjust node placed on page breaks/Sample/Properties/Settings.Designer.cs create mode 100644 Samples/PageSettings/How to adjust node placed on page breaks/Sample/Properties/Settings.settings create mode 100644 Samples/PageSettings/How to adjust node placed on page breaks/Sample/packages.config diff --git a/Samples/PageSettings/How to adjust node placed on page breaks/README.md b/Samples/PageSettings/How to adjust node placed on page breaks/README.md new file mode 100644 index 00000000..54f56f3f --- /dev/null +++ b/Samples/PageSettings/How to adjust node placed on page breaks/README.md @@ -0,0 +1,16 @@ +# How to adjust node position placed on page breaks sample + +This sample demonstrates How to adjust node position placed on page breaks. + +__*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. diff --git a/Samples/PageSettings/How to adjust node placed on page breaks/Sample/App.config b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/App.config new file mode 100644 index 00000000..709e8f8a --- /dev/null +++ b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/App.config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Samples/PageSettings/How to adjust node placed on page breaks/Sample/App.xaml b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/App.xaml new file mode 100644 index 00000000..54e346f8 --- /dev/null +++ b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/App.xaml @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/Samples/PageSettings/How to adjust node placed on page breaks/Sample/App.xaml.cs b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/App.xaml.cs new file mode 100644 index 00000000..8718da3e --- /dev/null +++ b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/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 PageBreaksSample +{ + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application + { + } +} diff --git a/Samples/PageSettings/How to adjust node placed on page breaks/Sample/MainWindow.xaml b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/MainWindow.xaml new file mode 100644 index 00000000..3c571fcb --- /dev/null +++ b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/MainWindow.xaml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Samples/PageSettings/How to adjust node placed on page breaks/Sample/MainWindow.xaml.cs b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/MainWindow.xaml.cs new file mode 100644 index 00000000..030eeda6 --- /dev/null +++ b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/MainWindow.xaml.cs @@ -0,0 +1,118 @@ +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 PageBreaksSample +{ + /// + /// Interaction logic for MainWindow.xaml + /// + public partial class MainWindow : Window + { + public MainWindow() + { + InitializeComponent(); + diagram.PageSettings.PageWidth = 1000; + diagram.PageSettings.PageHeight = 1000; + diagram.PageSettings.PrintMargin = new Thickness(0); + + diagram.HorizontalRuler = new Syncfusion.UI.Xaml.Diagram.Controls.Ruler() { }; + diagram.VerticalRuler = new Syncfusion.UI.Xaml.Diagram.Controls.Ruler() { Orientation = Orientation.Vertical }; + diagram.PageSettings.ShowPageBreaks = true; + (diagram.Info as IGraphInfo).ItemDropEvent += MainWindow_ItemDropEvent; + + } + + private void MainWindow_ItemDropEvent(object sender, ItemDropEventArgs args) + { + //For Offset X + + //Store the Offset value for move the Node Offset + var OldOffsetX = (args.Source as NodeViewModel).OffsetX; + + //Rounded off the Offset value + var RoundedNumberX = Math.Round((args.Source as NodeViewModel).OffsetX); + + var numberX = RoundedNumberX / diagram.PageSettings.PageWidth; + + //Convert to string + var numberStringX = numberX.ToString(); + + //Find the index value of the decimal point + var decimalIndexForX = numberStringX.IndexOf('.'); + + //Get the values after the decimal index if the index is -1 i have change this to 1 + var stringAfterDecimalForX = decimalIndexForX != -1 ? numberStringX.Substring(decimalIndexForX + 1) : "1"; + + //Covert the string to int + int finalNumberX = int.Parse(stringAfterDecimalForX); + + if (args.Source is INode) + { + if ((args.Source as NodeViewModel).OffsetX > (diagram.PageSettings.PageWidth/2)) + { + //Move the dropped node if the off set value is less than 1000 + if (finalNumberX >= (diagram.PageSettings.PageWidth - (args.Source as NodeViewModel).UnitWidth)) //&& num1 < diagram.PageSettings.PageWidth) + { + (args.Source as NodeViewModel).OffsetX = OldOffsetX - (args.Source as NodeViewModel).UnitWidth; + + } + //Move the dropped node if the off set value is greater than or equal 1000 + if (finalNumberX >= 1 && finalNumberX < (args.Source as NodeViewModel).UnitWidth) + { + (args.Source as NodeViewModel).OffsetX = OldOffsetX + (args.Source as NodeViewModel).UnitWidth; + } + } + } + + + //For Offset Y + + //Store the Offset value for move the Node Offset + var OldOffsetY = (args.Source as NodeViewModel).OffsetY; + + //Rounded off the Offset value + var RoundedNumberY = Math.Round((args.Source as NodeViewModel).OffsetY); + + var numberY = RoundedNumberY / diagram.PageSettings.PageWidth; + + //Convert to string + var numberStringY = numberY.ToString(); + + //Find the index value of the decimal point + var decimalIndexForY = numberStringY.IndexOf('.'); + + //Get the values after the decimal index if the index is -1 i have change this to 1 + var stringAfterDecimalForY = decimalIndexForY != -1 ? numberStringY.Substring(decimalIndexForY + 1) : "1"; + + //Covert the string to int + int finalNumberY = int.Parse(stringAfterDecimalForY); + + if (args.Source is INode) + { + //Move the dropped node if the off set value is less than 1000 + if (finalNumberY >= (diagram.PageSettings.PageWidth - (args.Source as NodeViewModel).UnitWidth)) + { + (args.Source as NodeViewModel).OffsetY = OldOffsetY - (args.Source as NodeViewModel).UnitWidth; + } + //Move the dropped node if the off set value is greater than or equal 1000 + if (finalNumberY >= 1 && finalNumberY < (args.Source as NodeViewModel).UnitWidth) + { + (args.Source as NodeViewModel).OffsetY = OldOffsetY + (args.Source as NodeViewModel).UnitWidth; + } + } + } + } +} diff --git a/Samples/PageSettings/How to adjust node placed on page breaks/Sample/PageBreaksSample.csproj b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/PageBreaksSample.csproj new file mode 100644 index 00000000..0784635f --- /dev/null +++ b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/PageBreaksSample.csproj @@ -0,0 +1,108 @@ + + + + + Debug + AnyCPU + {399C2FDD-ECB2-4587-8F75-99B27D9D6085} + WinExe + PageBreaksSample + PageBreaksSample + v4.8 + 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.22.1.38\lib\net46\Syncfusion.Licensing.dll + + + ..\packages\Syncfusion.SfDiagram.WPF.22.1.38\lib\net46\Syncfusion.SfDiagram.WPF.dll + + + ..\packages\Syncfusion.Shared.WPF.22.1.38\lib\net46\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/PageSettings/How to adjust node placed on page breaks/Sample/PageBreaksSample.sln b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/PageBreaksSample.sln new file mode 100644 index 00000000..63f7c99c --- /dev/null +++ b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/PageBreaksSample.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31727.386 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PageBreaksSample", "PageBreaksSample.csproj", "{399C2FDD-ECB2-4587-8F75-99B27D9D6085}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {399C2FDD-ECB2-4587-8F75-99B27D9D6085}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {399C2FDD-ECB2-4587-8F75-99B27D9D6085}.Debug|Any CPU.Build.0 = Debug|Any CPU + {399C2FDD-ECB2-4587-8F75-99B27D9D6085}.Release|Any CPU.ActiveCfg = Release|Any CPU + {399C2FDD-ECB2-4587-8F75-99B27D9D6085}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A176BE37-503E-4C46-BF5D-2C7FE440B721} + EndGlobalSection +EndGlobal diff --git a/Samples/PageSettings/How to adjust node placed on page breaks/Sample/Properties/AssemblyInfo.cs b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..4580fa10 --- /dev/null +++ b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/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("PageBreaksSample")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("PageBreaksSample")] +[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/PageSettings/How to adjust node placed on page breaks/Sample/Properties/Resources.Designer.cs b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/Properties/Resources.Designer.cs new file mode 100644 index 00000000..263f85b7 --- /dev/null +++ b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/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 PageBreaksSample.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("PageBreaksSample.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/PageSettings/How to adjust node placed on page breaks/Sample/Properties/Resources.resx b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/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/PageSettings/How to adjust node placed on page breaks/Sample/Properties/Settings.Designer.cs b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/Properties/Settings.Designer.cs new file mode 100644 index 00000000..08275ec5 --- /dev/null +++ b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/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 PageBreaksSample.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/PageSettings/How to adjust node placed on page breaks/Sample/Properties/Settings.settings b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/Properties/Settings.settings new file mode 100644 index 00000000..033d7a5e --- /dev/null +++ b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Samples/PageSettings/How to adjust node placed on page breaks/Sample/packages.config b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/packages.config new file mode 100644 index 00000000..a8bcc186 --- /dev/null +++ b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/packages.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file From c83bdb4745f938e15e5ae369aabbe635dc1deae8 Mon Sep 17 00:00:00 2001 From: deepa_thiruppathy Date: Wed, 31 Jan 2024 19:04:29 +0530 Subject: [PATCH 3/3] updated the samples to lateset nuet version --- .../Sample/PageBreaksSample.csproj | 12 ++++++------ .../Sample/packages.config | 6 +++--- .../Sample/EnableDisableStencilSymbol.csproj | 12 ++++++------ .../EnableDisableSymbol/Sample/packages.config | 6 +++--- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Samples/PageSettings/How to adjust node placed on page breaks/Sample/PageBreaksSample.csproj b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/PageBreaksSample.csproj index 0784635f..e9900425 100644 --- a/Samples/PageSettings/How to adjust node placed on page breaks/Sample/PageBreaksSample.csproj +++ b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/PageBreaksSample.csproj @@ -35,14 +35,14 @@ 4 - - ..\packages\Syncfusion.Licensing.22.1.38\lib\net46\Syncfusion.Licensing.dll + + packages\Syncfusion.Licensing.24.2.3\lib\net46\Syncfusion.Licensing.dll - - ..\packages\Syncfusion.SfDiagram.WPF.22.1.38\lib\net46\Syncfusion.SfDiagram.WPF.dll + + packages\Syncfusion.SfDiagram.WPF.24.2.3\lib\net46\Syncfusion.SfDiagram.WPF.dll - - ..\packages\Syncfusion.Shared.WPF.22.1.38\lib\net46\Syncfusion.Shared.WPF.dll + + packages\Syncfusion.Shared.WPF.24.2.3\lib\net46\Syncfusion.Shared.WPF.dll diff --git a/Samples/PageSettings/How to adjust node placed on page breaks/Sample/packages.config b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/packages.config index a8bcc186..931b8c98 100644 --- a/Samples/PageSettings/How to adjust node placed on page breaks/Sample/packages.config +++ b/Samples/PageSettings/How to adjust node placed on page breaks/Sample/packages.config @@ -1,6 +1,6 @@  - - - + + + \ No newline at end of file diff --git a/Samples/Stencil/EnableDisableSymbol/Sample/EnableDisableStencilSymbol.csproj b/Samples/Stencil/EnableDisableSymbol/Sample/EnableDisableStencilSymbol.csproj index 148bba88..416b8665 100644 --- a/Samples/Stencil/EnableDisableSymbol/Sample/EnableDisableStencilSymbol.csproj +++ b/Samples/Stencil/EnableDisableSymbol/Sample/EnableDisableStencilSymbol.csproj @@ -35,14 +35,14 @@ 4 - - packages\Syncfusion.Licensing.24.1.41\lib\net46\Syncfusion.Licensing.dll + + packages\Syncfusion.Licensing.24.2.3\lib\net46\Syncfusion.Licensing.dll - - packages\Syncfusion.SfDiagram.WPF.24.1.41\lib\net46\Syncfusion.SfDiagram.WPF.dll + + packages\Syncfusion.SfDiagram.WPF.24.2.3\lib\net46\Syncfusion.SfDiagram.WPF.dll - - packages\Syncfusion.Shared.WPF.24.1.41\lib\net46\Syncfusion.Shared.WPF.dll + + packages\Syncfusion.Shared.WPF.24.2.3\lib\net46\Syncfusion.Shared.WPF.dll diff --git a/Samples/Stencil/EnableDisableSymbol/Sample/packages.config b/Samples/Stencil/EnableDisableSymbol/Sample/packages.config index fbb9e977..bc624626 100644 --- a/Samples/Stencil/EnableDisableSymbol/Sample/packages.config +++ b/Samples/Stencil/EnableDisableSymbol/Sample/packages.config @@ -1,6 +1,6 @@  - - - + + + \ No newline at end of file