Nodify 7.0.0

dotnet add package Nodify --version 7.0.0                
NuGet\Install-Package Nodify -Version 7.0.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Nodify" Version="7.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Nodify --version 7.0.0                
#r "nuget: Nodify, 7.0.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Nodify as a Cake Addin
#addin nuget:?package=Nodify&version=7.0.0

// Install Nodify as a Cake Tool
#tool nuget:?package=Nodify&version=7.0.0                

Nodify <img src="https://user-images.githubusercontent.com/12727904/195416464-cbe7e3be-a372-4a17-a4be-a868059b9d7e.png" width="120px" alt="Nodify" align="right">

NuGet NuGet License C#

A collection of highly performant controls for node-based editors designed for MVVM.

[!TIP] There is now a fantastic Avalonia port available! You can check it out here. Huge thanks to BAndysc who made this possible!

🚀 Examples of node-based applications

🔶 A canvas application where you can draw and connect shapes.

Examples/Nodify.Shapes

Canvas

🎨 A playground application where you can try all the available settings.

Examples/Nodify.Playground

Playground

🌓 A state machine where each state represents an executable action, and each transition represents a condition for executing the next action.

Examples/Nodify.StateMachine

StateMachine

💻 A simple "real-time" calculator where each node represents an operation that takes input and feeds its output into other node's input.

Examples/Nodify.Calculator

Calculator

📥 Installation

Use the NuGet package manager to install Nodify.

Install-Package Nodify

⭐️ Features

  • Designed from the start to work with MVVM
  • No dependencies other than WPF
  • Optimized for interactions with hundreds of nodes at once
  • Built-in dark and light themes
  • Selecting, zooming, panning with auto panning when close to edge
  • Select, move and connect nodes
  • Lots of configurable dependency properties
  • Ready for undo/redo
  • Example applications: 🎨 Playground, 🌓 State machine, 💻 Calculator, 🔶 Canvas

📝 Documentation

Check out the wiki and the changelog in github.

❤️ Contributing

Helping with documentation, bug reports, pull requests or anything else is very welcome.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net5.0-windows7.0 is compatible.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net6.0-windows7.0 is compatible.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net8.0-windows7.0 is compatible.  net9.0-windows7.0 is compatible. 
.NET Core netcoreapp3.1 is compatible. 
.NET Framework net472 is compatible.  net48 is compatible.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETCoreApp 3.1

    • No dependencies.
  • .NETFramework 4.7.2

    • No dependencies.
  • .NETFramework 4.8

    • No dependencies.
  • net5.0-windows7.0

    • No dependencies.
  • net6.0-windows7.0

    • No dependencies.
  • net8.0-windows7.0

    • No dependencies.
  • net9.0-windows7.0

    • No dependencies.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Nodify:

Package Downloads
Aurora.Workflows.UI.Core

A versatile C# workflow engine designed to streamline task management. Easily define and execute workflows with built-in tasks or customize your own to fit specific needs. Perfect for automating processes and improving efficiency in any application.

Aurora.Workflows.UI.Host

A versatile C# workflow engine designed to streamline task management. Easily define and execute workflows with built-in tasks or customize your own to fit specific needs. Perfect for automating processes and improving efficiency in any application.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on Nodify:

Repository Stars
WolvenKit/WolvenKit
Community Mod editor/creator for REDengine games.
Version Downloads Last updated
7.0.0 69 12/23/2024
6.6.0 376 11/25/2024
6.5.0 1,204 10/22/2024
6.4.0 1,125 9/12/2024
6.3.0 968 7/27/2024
6.2.0 132 7/23/2024
6.1.0 441 7/12/2024
6.0.0 1,197 5/13/2024
5.2.0 1,270 3/24/2024
5.1.0 6,332 1/17/2024
5.0.2 7,776 5/20/2023
5.0.1 384 4/10/2023
5.0.0 295 3/31/2023
4.1.0 4,280 10/18/2022
4.0.1 423 10/17/2022
4.0.0 442 10/15/2022
3.0.0 541 10/5/2022
2.0.1 462 9/26/2022
2.0.0 485 9/23/2022
1.8.0 941 5/27/2022
1.7.0 1,128 6/12/2021
1.6.2 393 6/5/2021
1.6.1 435 3/4/2021
1.6.0 479 12/21/2020

> - Breaking Changes:
     >  - Made the setter of NodifyEditor.IsPanning private
     >  - Made SelectionHelper internal
     >  - Renamed HandleRightClickAfterPanningThreshold to MouseActionSuppressionThreshold in NodifyEditor
     >  - Renamed StartCutting to BeginCutting in NodifyEditor
     >  - Renamed Connector.EnableStickyConnections to ConnectorState.EnabledToggledConnectingMode
     >  - Renamed PushItems to UpdatePushedArea and StartPushingItems to BeginPushingItems in NodifyEditor
     >  - Renamed UnselectAllConnection to UnselectAllConnections in NodifyEditor
     >  - Removed DragStarted, DragDelta and DragCompleted routed events from ItemContainer
     >  - Replaced the System.Windows.Input.MouseGesture with Nodify.Interactivity.MouseGesture for default EditorGesture mappings
     >  - Removed State, GetInitialState, PushState, PopState and PopAllStates from NodifyEditor and ItemContainer
     >  - Replaced EditorState and ContainerState with InputElementState
     >  - Moved AllowCuttingCancellation from CuttingLine to NodifyEditor
     >  - Moved AllowDraggingCancellation from ItemContainer to NodifyEditor
     >  - Moved EditorGestures under the Nodify.Interactivity namespace
     >  - Moved editor events under the Nodify.Events namespace
     > - Features:
     >  - Added BeginPanning, UpdatePanning, EndPanning, CancelPanning and AllowPanningCancellation to NodifyEditor and Minimap
     >  - Added MouseLocation, ZoomAtPosition and GetLocationInsideMinimap to Minimap
     >  - Added UpdateCuttingLine to NodifyEditor
     >  - Added Select, BeginSelecting, UpdateSelection, EndSelecting, CancelSelecting and AllowSelectionCancellation to NodifyEditor
     >  - Added IsDragging, BeginDragging, UpdateDragging, EndDragging and CancelDragging to NodifyEditor
     >  - Added AlignSelection and AlignContainers methods to NodifyEditor
     >  - Added LockSelection and UnlockSelection methods to NodifyEditor and EditorCommands
     >  - Added ItemsMoved routed event to NodifyEditor
     >  - Added HasCustomContextMenu dependency property to NodifyEditor, ItemContainer, Connector and BaseConnection
     >  - Added Select, BeginDragging, UpdateDragging, EndDragging and CancelDragging to ItemContainer
     >  - Added PreserveSelectionOnRightClick configuration field to ItemContainer
     >  - Added BeginConnecting, UpdatePendingConnection, EndConnecting, CancelConnecting and RemoveConnections methods to Connector
     >  - Added FindTargetConnector and FindConnectionTarget methods to Connector
     >  - Added a custom MouseGesture with support for key combinations
     >  - Added InputProcessor to NodifyEditor, ItemContainer, Connector, BaseConnection and Minimap, enabling the extension of controls with custom states
     >  - Added DragState to simplify creating click-and-drag interactions, with support for initiating and completing them using the keyboard
     >  - Added InputElementStateStack, InputElementStateStack.DragState and InputElementStateStack.InputElementState to manage transitions between states in UI elements
     >  - Added InputProcessor.Shared to enable the addition of global input handlers
     >  - Move the viewport to the mouse position when zooming on the Minimap if ResizeToViewport is false
     >  - Added SplitAtLocation and Remove methods to BaseConnection
     >  - Added AllowPanningWhileSelecting, AllowPanningWhileCutting and AllowPanningWhilePushingItems to EditorState
     >  - Added AllowZoomingWhilePanning, AllowZoomingWhileSelecting, AllowZoomingWhileCutting and AllowZoomingWhilePushingItems to EditorState
     >  - Added EnableToggledSelectingMode, EnableToggledPanningMode, EnableToggledPushingItemsMode and EnableToggledCuttingMode to EditorState
     >  - Added MinimapState.EnableToggledPanningMode
     >  - Added ContainerState.EnableToggledDraggingMode
     >  - Added Unbind to InputGestureRef and EditorGestures.SelectionGestures
     >  - Added EnableHitTesting to PendingConnection
     > - Bugfixes:
     >  - Fixed an issue where the ItemContainer was selected by releasing the mouse button on it, even when the mouse was not captured
     >  - Fixed an issue where the ItemContainer could open its context menu even when it was not selected
     >  - Fixed an issue where the Home button caused the editor to fail to display items when contained within a ScrollViewer
     >  - Fixed an issue where connector optimization did not work when SelectedItems was not data-bound
     >  - Fixed EditorCommands.Align to perform a single arrange invalidation instead of one for each aligned container
     >  - Fixed an issue where controls would capture the mouse unnecessarily; they now capture it only in response to a defined gesture
     >  - Fixed an issue where the minimap could update the viewport without having the mouse captured
     >  - Fixed ItemContainer.Select and NodifyEditor.SelectArea to clear the existing selection and select the containers within the same transaction
     >  - Fixed an issue where editor interactions failed to cancel upon losing mouse capture
     >  - Fixed an issue where selecting a new connection would not clear the previous selection within the same transaction