Nodify學習 一:介紹與使用 - 可樂_加冰 - 博客園 (cnblogs.com) Nodify學習 二:添加節點 - 可樂_加冰 - 博客園 (cnblogs.com) 介紹 Nodify是一個WPF基於節點的編輯器控制項,其中包含一系列節點、連接和連接器組件,旨在簡化構建基於節點的工具的過程 ...
Nodify學習 一:介紹與使用 - 可樂_加冰 - 博客園 (cnblogs.com)
Nodify學習 二:添加節點 - 可樂_加冰 - 博客園 (cnblogs.com)
介紹
Nodify是一個WPF基於節點的編輯器控制項,其中包含一系列節點、連接和連接器組件,旨在簡化構建基於節點的工具的過程。
這是受虛幻引擎的藍圖視覺腳本系統啟發,但僅專註於用戶界面和用戶交互部分。與藍圖不同,Nodify是一個通用庫,提供了一個節點圖編輯器組件,可以嵌入到任何 WPF 應用程式中。
該圖形編輯器是一個無限區域,您可以在其中放置和移動節點,選擇和拖動節點組,連接和斷開節點或連接器,放大和縮小,以及在將節點或導線拖動到邊緣附近時自動移動屏幕等。
Nodify功能豐富,經過優化,可以同時與數百個節點進行交互,並且...它是為與MVVM一起工作而重新架構的。
層次結構
根組件是一個編輯器(editor),它包含節點(nodes)和連接(connections)以及一些額外的UI元素,如選擇框(selection rectangle)和一個預備連接(pending connection),以使編輯器具有交互性。
節點是連接器(connectors)的容器,有時候節點本身也可以作為連接器(比如 狀態節點).
連接器可以創建預備連接,預備連接在完成後可以成為實際的連接。
內容層
一個節點如何既能作為連接器本身又能像普通節點一樣運行。編輯器包含三個主要層次,這些層次有助於解決這個問題:
- 項目層(NodifyEditor.ItemsSource)——在這裡,每個控制項都被包裝在一個容器中,使其可以選擇、拖動等,並且可以渲染任何控制項(例如連接器、文本塊)
- 連接層(NodifyEditor.Connections)——這是所有連接共存的地方,並預設在項目層下麵渲染。
- 裝飾層(NodifyEditor.Decorators)——在這裡,每個控制項在視窗中都有一個位置。
將這些層次分開,使得每個層次可以非同步載入成為可能。
安裝
Install-Package Nodify
或者
主題
Nodify 包含三個主題分別為
- 深色主題(如果未指定,則為預設主題):
<ResourceDictionary Source="pack://application:,,,/Nodify;component/Themes/Dark.xaml" />
- 淺色主題:
<ResourceDictionary Source="pack://application:,,,/Nodify;component/Themes/Light.xaml" />
- Nodify主題:
<ResourceDictionary Source="pack://application:,,,/Nodify;component/Themes/Nodify.xaml" />
這是我使用淺色主題
然後在MainWindow引用
xmlns:nodify="https://miroiu.github.io/nodify"
運行效果
案例地址:
Github:zt199510/NodifySamples (github.com)