miroiu / nodify

Highly performant and modular controls for node-based editors designed for data-binding and MVVM.
https://miroiu.github.io/nodify
MIT License
1.3k stars 208 forks source link

[Question]Can I change the size of the node? #55

Closed XiangNingZhi closed 1 year ago

XiangNingZhi commented 1 year ago

Hi miroiu.

The current node will be sized according to the number of Connectors and the length of the Content, can I customize its length and width? And can I impose more styles for nodes? For example, modify the border, modify the background color of the node? I plan to use this for a circuit schematic display, so it would be nice to be able to replace the node Content with a graphic.

If there is a good way please tell me, thank you.

miroiu commented 1 year ago

Hi @XiangNingZhi ,

The current node will be sized according to the number of Connectors and the length of the Content, can I customize its length and width?

If you are rendering a <Node />, that's possible by setting its Width and Height. The content can also have a fixed Width and Height but notice that the connectors also take up space and you may need a scrollbar.

image

And can I impose more styles for nodes? For example, modify the border, modify the background color of the node?

Sure! Just set the available dependency properties like Background, Foreground, BorderBrush, ContentBrush, HeaderBrush, FooterBrush, etc. (it's best to look them up in the code). There's also the option to change the theme of the whole library or customize parts of it by overwriting its colors (e.g. Node.BackgroundColor).

But you can also customize the container (ItemContainer) of the nodes if you want them all to look the same.

image

I plan to use this for a circuit schematic display, so it would be nice to be able to replace the node Content with a graphic.

That's cool! You can set the node content to anything you want.

You can also create custom nodes and custom connectors if you can't customize the built-in nodes the way you want.

image

I hope this helps!

XiangNingZhi commented 1 year ago

Thank you very much! You solved my problem perfectly! If I want to customize the node then use ItemContainer will be able to use most of the properties of wpf?

miroiu commented 1 year ago

Yes, both the ItemContainer and the node inherits from ContentControl which means you can use the standard WPF dependency properties for customization.