在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → nodify:针对基于节点的编辑器设计的高性能和模块化控件(支持数据绑定和MVVM)

nodify:针对基于节点的编辑器设计的高性能和模块化控件(支持数据绑定和MVVM)

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:0.24M
  • 下载次数:0
  • 浏览次数:10
  • 发布时间:2024-05-07
  • 实例类别:一般编程问题
  • 发 布 人:chenxiaolan
  • 文件格式:.zip
  • 所需积分:2
 相关标签: MVVM 编辑器 数据 编辑 控件

实例介绍

【实例简介】

Nodify

一个针对基于节点的编辑器设计的高性能控件集合,适用于MVVM。

  • 🚀 基于节点的应用程序示例
  • 🎨 一个可用于尝试所有可用设置的播放器应用程序。
  • 🌓 一个状态机,其中每个状态表示可执行操作,每个转换表示下一个操作执行的条件。
  • 💻 一个简单的“实时”计算器,其中每个节点表示一个接受输入并将其输出馈送到其他节点输入的操作。

⭐️ 特点

  • 从一开始就设计为与MVVM配合使用
  • 除了WPF之外没有其他依赖项
  • 针对同时与数百个节点交互进行优化
  • 内置深色和浅色主题
  • 在接近边缘时进行选择、缩放、平移,并具有自动平移功能
  • 选择、移动和连接节点
  • 大量可配置的依赖属性
  • 准备好撤消/重做
  • 示例应用程序:🎨 播放器、🌓 状态机、💻 计算器

【实例截图】

from clipboard


from clipboard

【核心代码】
文件清单
└── nodify-045bc94fb0c5c935841379a22983ddd43745a520
    ├── build
    │   ├── Nodify.public.snk
    │   └── Nodify.snk
    ├── CHANGELOG.md
    ├── CODE_OF_CONDUCT.md
    ├── CONTRIBUTING.md
    ├── Examples
    │   ├── Nodify.Calculator
    │   │   ├── ApplicationViewModel.cs
    │   │   ├── App.xaml
    │   │   ├── App.xaml.cs
    │   │   ├── AssemblyInfo.cs
    │   │   ├── CalculatorInputOperationViewModel.cs
    │   │   ├── CalculatorOperationViewModel.cs
    │   │   ├── CalculatorViewModel.cs
    │   │   ├── ConnectionViewModel.cs
    │   │   ├── ConnectorViewModel.cs
    │   │   ├── Converters
    │   │   │   └── ItemToListConverter.cs
    │   │   ├── CreateOperationInfoViewModel.cs
    │   │   ├── EditorViewModel.cs
    │   │   ├── EditorView.xaml
    │   │   ├── EditorView.xaml.cs
    │   │   ├── ExpandoOperationViewModel.cs
    │   │   ├── ExpressionOperationViewModel.cs
    │   │   ├── MainWindow.xaml
    │   │   ├── MainWindow.xaml.cs
    │   │   ├── Nodify.Calculator.csproj
    │   │   ├── OperationGraphViewModel.cs
    │   │   ├── OperationGroupViewModel.cs
    │   │   ├── OperationInfoViewModel.cs
    │   │   ├── Operations
    │   │   │   ├── BinaryOperation.cs
    │   │   │   ├── IOperation.cs
    │   │   │   ├── OperationFactory.cs
    │   │   │   ├── OperationsContainer.cs
    │   │   │   ├── ParamsOperation.cs
    │   │   │   ├── UnaryOperation.cs
    │   │   │   └── ValueOperation.cs
    │   │   ├── OperationsExtensions.cs
    │   │   ├── OperationsMenuViewModel.cs
    │   │   ├── OperationsMenuView.xaml
    │   │   ├── OperationsMenuView.xaml.cs
    │   │   ├── OperationViewModel.cs
    │   │   └── PendingConnectionViewModel.cs
    │   ├── Nodify.Playground
    │   │   ├── App.xaml
    │   │   ├── App.xaml.cs
    │   │   ├── AssemblyInfo.cs
    │   │   ├── BaseSettingViewModel.cs
    │   │   ├── Converters
    │   │   │   ├── FlowToDirectionConverter.cs
    │   │   │   └── UIntToRectConverter.cs
    │   │   ├── Editor
    │   │   │   ├── CommentNodeViewModel.cs
    │   │   │   ├── ConnectionViewModel.cs
    │   │   │   ├── ConnectorViewModel.cs
    │   │   │   ├── FlowNodeViewModel.cs
    │   │   │   ├── GraphSchema.cs
    │   │   │   ├── KnotNodeViewModel.cs
    │   │   │   ├── NodeViewModel.cs
    │   │   │   ├── NodifyEditorViewModel.cs
    │   │   │   ├── NodifyEditorView.xaml
    │   │   │   ├── NodifyEditorView.xaml.cs
    │   │   │   └── PendingConnectionViewModel.cs
    │   │   ├── EditorSettings.cs
    │   │   ├── EditorSettingsView.xaml
    │   │   ├── EditorSettingsView.xaml.cs
    │   │   ├── Helpers
    │   │   │   ├── NodeViewModelExtensions.cs
    │   │   │   └── RandomNodesGenerator.cs
    │   │   ├── ISettingViewModel.cs
    │   │   ├── MainWindow.xaml
    │   │   ├── MainWindow.xaml.cs
    │   │   ├── Nodify.Playground.csproj
    │   │   ├── PlaygroundSettings.cs
    │   │   ├── PlaygroundViewModel.cs
    │   │   ├── PointEditor.cs
    │   │   ├── PointEditorView.xaml
    │   │   ├── PointEditorView.xaml.cs
    │   │   ├── ProxySettingViewModel.cs
    │   │   ├── SettingsView.xaml
    │   │   ├── SettingsView.xaml.cs
    │   │   └── Themes
    │   │       ├── Brushes.xaml
    │   │       ├── Dark.xaml
    │   │       ├── Light.xaml
    │   │       └── Nodify.xaml
    │   ├── Nodify.Shared
    │   │   ├── BindingProxy.cs
    │   │   ├── BoxValue.cs
    │   │   ├── Controls
    │   │   │   ├── EditableTextBlock.cs
    │   │   │   ├── TabControlEx.cs
    │   │   │   └── TabItemEx.cs
    │   │   ├── Converters
    │   │   │   ├── BooleanToVisibilityConverter.cs
    │   │   │   ├── DebugConverter.cs
    │   │   │   ├── EnumValuesConverter.cs
    │   │   │   ├── RandomBrushConverter.cs
    │   │   │   ├── StringToVisibilityConverter.cs
    │   │   │   └── ToStringConverter.cs
    │   │   ├── DelegateCommand.cs
    │   │   ├── FluentSyntax.cs
    │   │   ├── NodifyObservableCollection.cs
    │   │   ├── Nodify.Shared.csproj
    │   │   ├── ObservableObject.cs
    │   │   ├── Properties
    │   │   │   └── AssemblyInfo.cs
    │   │   ├── RequeryCommand.cs
    │   │   ├── StringExtensions.cs
    │   │   ├── ThemeManager.cs
    │   │   └── Themes
    │   │       ├── Brushes.xaml
    │   │       ├── Controls.xaml
    │   │       ├── Dark.xaml
    │   │       ├── Generic.xaml
    │   │       ├── Icons.xaml
    │   │       ├── Light.xaml
    │   │       └── Nodify.xaml
    │   └── Nodify.StateMachine
    │       ├── App.xaml
    │       ├── App.xaml.cs
    │       ├── BlackboardItemReferenceViewModel.cs
    │       ├── BlackboardItemViewModel.cs
    │       ├── BlackboardKeyEditorViewModel.cs
    │       ├── BlackboardKeyEditorView.xaml
    │       ├── BlackboardKeyEditorView.xaml.cs
    │       ├── BlackboardKeyViewModel.cs
    │       ├── BlackboardViewModel.cs
    │       ├── Converters
    │       │   ├── BlackboardKeyEditorConverter.cs
    │       │   ├── ConnectorOffsetConverter.cs
    │       │   └── FilterBlackboardKeysConverter.cs
    │       ├── Helpers
    │       │   └── BlackboardDescriptor.cs
    │       ├── MainWindow.xaml
    │       ├── MainWindow.xaml.cs
    │       ├── Nodify.StateMachine.csproj
    │       ├── Runner
    │       │   ├── Actions
    │       │   │   ├── CopyKeyAction.cs
    │       │   │   ├── SetKeyValueAction.cs
    │       │   │   └── SetStateDelayAction.cs
    │       │   ├── Blackboard
    │       │   │   ├── BlackboardConditionSet.cs
    │       │   │   ├── Blackboard.cs
    │       │   │   ├── BlackboardItemAttribute.cs
    │       │   │   ├── BlackboardKey.cs
    │       │   │   ├── BlackboardPropertyAttribute.cs
    │       │   │   ├── BlackboardProperty.cs
    │       │   │   ├── IBlackboardAction.cs
    │       │   │   └── IBlackboardCondition.cs
    │       │   ├── Conditions
    │       │   │   ├── AreEqualCondition.cs
    │       │   │   ├── HasKeyCondition.cs
    │       │   │   └── HasValueCondition.cs
    │       │   ├── Debugging
    │       │   │   ├── DebugBlackboardDecorator.cs
    │       │   │   ├── DebugStateDecorator.cs
    │       │   │   └── DebugTransitionDecorator.cs
    │       │   ├── State.cs
    │       │   ├── StateMachine.cs
    │       │   └── Transition.cs
    │       ├── StateMachineRunnerViewModel.cs
    │       ├── StateMachineViewModel.cs
    │       ├── StateViewModel.cs
    │       ├── Themes
    │       │   ├── Brushes.xaml
    │       │   ├── Dark.xaml
    │       │   ├── Light.xaml
    │       │   └── Nodify.xaml
    │       └── TransitionViewModel.cs
    ├── icon.png
    ├── LICENSE
    ├── Nodify
    │   ├── Connections
    │   │   ├── BaseConnection.cs
    │   │   ├── CircuitConnection.cs
    │   │   ├── Connection.cs
    │   │   ├── Connector.cs
    │   │   ├── LineConnection.cs
    │   │   └── PendingConnection.cs
    │   ├── DecoratorContainer.cs
    │   ├── DecoratorsControl.cs
    │   ├── EditorCommands.cs
    │   ├── EditorGestures.cs
    │   ├── EditorStates
    │   │   ├── ContainerDefaultState.cs
    │   │   ├── ContainerDraggingState.cs
    │   │   ├── ContainerState.cs
    │   │   ├── EditorDefaultState.cs
    │   │   ├── EditorPanningState.cs
    │   │   ├── EditorSelectingState.cs
    │   │   └── EditorState.cs
    │   ├── Events
    │   │   ├── ConnectionEventArgs.cs
    │   │   ├── ConnectorEventArgs.cs
    │   │   ├── PendingConnectionEventArgs.cs
    │   │   └── ResizeEventArgs.cs
    │   ├── Helpers
    │   │   ├── BoxValue.cs
    │   │   ├── DependencyObjectExtensions.cs
    │   │   ├── DraggingOptimized.cs
    │   │   ├── DraggingSimple.cs
    │   │   ├── MultiGesture.cs
    │   │   ├── SelectionHelper.cs
    │   │   └── UnscaleTransformConverter.cs
    │   ├── ItemContainer.cs
    │   ├── Nodes
    │   │   ├── GroupingNode.cs
    │   │   ├── KnotNode.cs
    │   │   ├── Node.cs
    │   │   ├── NodeInput.cs
    │   │   ├── NodeOutput.cs
    │   │   └── StateNode.cs
    │   ├── NodifyCanvas.cs
    │   ├── Nodify.csproj
    │   ├── Nodify.csproj.DotSettings
    │   ├── NodifyEditor.cs
    │   ├── Properties
    │   │   └── AssemblyInfo.cs
    │   └── Themes
    │       ├── Brushes.xaml
    │       ├── Controls.xaml
    │       ├── Dark.xaml
    │       ├── Generic.xaml
    │       ├── Light.xaml
    │       ├── Nodify.xaml
    │       └── Styles
    │           ├── Connection.xaml
    │           ├── Connector.xaml
    │           ├── Controls.xaml
    │           ├── DecoratorContainer.xaml
    │           ├── GroupingNode.xaml
    │           ├── ItemContainer.xaml
    │           ├── KnotNode.xaml
    │           ├── NodeInput.xaml
    │           ├── NodeOutput.xaml
    │           ├── Node.xaml
    │           ├── NodifyEditor.xaml
    │           ├── PendingConnection.xaml
    │           └── StateNode.xaml
    ├── Nodify.sln
    ├── Nodify.sln.DotSettings
    ├── PULL_REQUEST_TEMPLATE.md
    └── README.md

34 directories, 214 files

实例下载地址

nodify:针对基于节点的编辑器设计的高性能和模块化控件(支持数据绑定和MVVM)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警