Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/MakesYT/NodifyM.Avalonia
A collection of controls for node based editors designed for MVVM.
https://github.com/MakesYT/NodifyM.Avalonia
avalonia avaloniaui mvvm net node-editor zooming
Last synced: 27 days ago
JSON representation
A collection of controls for node based editors designed for MVVM.
- Host: GitHub
- URL: https://github.com/MakesYT/NodifyM.Avalonia
- Owner: MakesYT
- License: mit
- Created: 2024-01-23T14:54:04.000Z (11 months ago)
- Default Branch: master
- Last Pushed: 2024-07-12T15:56:53.000Z (5 months ago)
- Last Synced: 2024-10-30T01:02:31.825Z (about 2 months ago)
- Topics: avalonia, avaloniaui, mvvm, net, node-editor, zooming
- Language: C#
- Homepage:
- Size: 271 KB
- Stars: 104
- Watchers: 5
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-avalonia - NodifyM.Avalonia - A collection of controls for node based editors designed for MVVM. (Libraries & Extensions / Controls)
README
# NodifyM.Avalonia
[![NuGet](https://img.shields.io/nuget/v/NodifyM.Avalonia?style=for-the-badge&logo=nuget&label=release)](https://www.nuget.org/packages/NodifyM.Avalonia/)
[![NuGet](https://img.shields.io/nuget/dt/NodifyM.Avalonia?label=downloads&style=for-the-badge&logo=nuget)](https://www.nuget.org/packages/NodifyM.Avalonia)
[![License](https://img.shields.io/github/license/miroiu/nodify?style=for-the-badge)](https://github.com/miroiu/nodify/blob/master/LICENSE)A collection of controls for node based editors designed for MVVM.
## About
This project is a refactoring of [Nodify](https://github.com/miroiu/nodify) on the Avalonia platform and is not a 1:1 replica of Nodify, but they have many similarities.
![image](https://raw.githubusercontent.com/MakesYT/NodifyM.Avalonia/master/assets/Kitopia1706877412160.png)
![image](https://raw.githubusercontent.com/MakesYT/NodifyM.Avalonia/master/assets/Kitopia1706877401219.png)## Features
- Designed from the start to work with **MVVM**
- Built-in dark and light **themes**
- **Selecting**, **zooming**, **panning**
- Select, move, **_auto align_**, **auto panning** when close to edge and connect nodes
### What are the differences compared to Nodify
- **Supports**
- auto align Node
- display text on Connection
- **Nonsupport**
- Select multiple nodes
- **Will be supported in the future**
- none
## Usage
### NodifyEditor
- `Press` and `Hold` -> Move the all show items
- Mouse wheel -> Zoom all show items
### Node
- `Press` and `Hold` -> Move the Node
- `Press Move` and `Hold Shift` -> Move the Node(without automatically align)
- `Press` the Node -> Select the Node
### Connection
- `Press` and `Hold` the Connector and move to another Connector -> Create a new connection
- Hold `Alt` and `Click` Connection -> Remove Connection
- `DoubleClick` Connection -> Split the connection in the double-click position
### PendingConnection
- `Press` and `Hold` the Connector -> Show connection preview
### Connector
- Hold `Alt` and `Click` Connector -> Remove all the Connections on the Connector## Notice
### Some known problems
1. Do not use `Mode=OneWayToSource` when you have multiple Nodify bound to the same ViewModel, this is a bug from [Avalonia](https://github.com/AvaloniaUI/Avalonia/issues/4438)## Example
#### please see the [NodifyM.Avalonia.Example](https://github.com/MakesYT/NodifyM.Avalonia/tree/master/NodifyM.Avalonia.Example)
#### You can git clone the project and run `NodifyM.Avalonia.Example`## Changelog
### 1.0.15
- Fix OnPointerPressed event handler
### 1.0.14
- Remove unnecessary packages
### 1.0.13
- Fixed SelectedNode Property
- Added the ability to select and drag the Node corresponding to the Connector
### 1.0.12
- Fixed the adaptive node layout calculation error
- Added node centerline alignment
### 1.0.11
- Added automatic adaptation to display all Nodes when NodifyEditor is initialized
- Optimize child node search
### 1.0.10
- Fixed Node Header/Input/OutputTemplate allow use IDataTemplate
- Added Avalonia.Diagnostics Condition
### 1.0.9
- Allows not to use the built-in ViewModelBase
- Fixed ViewTranslateTransform and AlignmentLine exceptions when multiple NodifyEditor
### 1.0.8
- Added Light and Dark themes follow the Avalonia toggle
- Fixed invalid Connection Text Brush modifications
- Optimize the Dark theme color
- Added GridLine color definition
### 1.0.7
- Added Node **auto panning** when close to edge
### 1.0.6
- Fixed Node IsSelected property
- Fixed Node BorderBrush Style
- Added Node Alignment hint
### 1.0.5
- Added the ability to temporarily without automatically align Node while holding Shift
- Added the ability to display text on Connection
### 1.0.4
- Add align Node configuration properties
- Add Node automatic alignment
### 1.0.3
- Added the connection SplitConnection and DisconnectConnection commands
- Add CircuitConnection
- Fixed default control color to dictionary color
- Support to override the Connect and Disconnect from NodifyEditorViewModelBase method
- Fix KnotNode Show
- Remove some useless attributes