Nodify 7.0.0
dotnet add package Nodify --version 7.0.0
NuGet\Install-Package Nodify -Version 7.0.0
<PackageReference Include="Nodify" Version="7.0.0" />
paket add Nodify --version 7.0.0
#r "nuget: Nodify, 7.0.0"
// 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">
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.
🎨 A playground application where you can try all the available settings.
🌓 A state machine where each state represents an executable action, and each transition represents a condition for executing the next action.
💻 A simple "real-time" calculator where each node represents an operation that takes input and feeds its output into other node's input.
📥 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 | Versions 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. |
-
.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