Noesis studio extensions, view scripting intentions, and nine slicing
Posted: 19 Dec 2025, 18:31
My background is using unreal UMG for a very long time and stumbling upon this project by accident so I am coming in completely cold. As far as I can see there is no other multiplatform engine agnostic game UI library unless you want to deal with html5 which I do not so I am very excited about Noesis. I've integrated the native SDK into my game but I am confused on some of the intentions here. It seems there is no way to do coding for the view which is potentially problematic. I understand that much can be done with Interactivity and Binding but some things cannot, at least with my current level of experience.
As an example Nine Slicing from Studio seems to be missing from the SDK, it is available as a sample in Blend projects but I cannot find evidence that it can be registered in my game from the sdk and posts on this forum seem to back this up. So I steal the c++ example and upgrade the namespaces so it reads as a GUIExtension like how studio formats it, steal the xaml, but it doesnt quite work in game still. Debugging: Thickness Top,Left,Bottom,Right *do not bind* in my game. Not even to a textblock with {Binding Slices.Top }. So I do some scripting and steal the thickness in OnSlicesChanged which does have the correct values even tho they dont bind and assign it to 4 individual floats. I bind the new floats to the xaml instead of default Slices.Top etc and now Nine Slicing from studio works in my game!
But now because the xaml is now different and studio has no idea about my custom controls it doesnt show in Studio correctly xD. I ended up solving that by only loading the xaml overwrite game side.
So I see sort of a disconnect here which makes things like playing the UI in editor or even much designing in editor not nearly as useful since my game and my designer cannot share the same controls or even visuals. Is the intention eventually I build studio from source so I can share components between my game and studio? If so is there any update on when indie license owners can have access to this? Can I really make a game UI without any ability to do view scripting? Is there some way I can build this nine slice component ( which really is just some bindings and some rectangles ) without c++ at all in a re-usable way that i just set the outer slices and image source that i am totally overlooking?
I think more documentation could be prepared about the transition from Blend ( which ive never used before so have surface level understanding of ) with its code-behind layer to Studio which focused only on Commands and Data Binding since the philosophy does not seem clear an outsider ( or i am too thick to find this information :) ). its not clear how i can build the same complex apps that are shown in the blend examples if all my code is not seen by studio.
It was also a little disappointing for this rabbit hole to be specifically about Nine Slicing as this is the Bread and Butter of UI in my opinion. It would be great if nine slicing was available as an Image Brush, you even already have all the controls ready for editing the corner regions with similar properties the like Viewport regions.
One other small feedback is it would be very great if asset selectors ( like choosing ImageSource ) had a filter, if you load up the project with many many assets its super difficult to find what you want. It would be nice if i could just start typing and it would filter.
I have 0 interest in using Blend or Visual Studio to design UI so my focus here is entirely on Noesis Studio. Many thanks to the devs for releasing the beta and letting me try it out and thank you for reading!
Small edit: the more controls I use in Studio the more difference I am seeing in engine using the default themes. Are they really quite out of date with eachother or have I done something wrong? Specifically now I am seeing that the mouse triggers for the scrollviewer cause my entire app to stop rendering. I redid the scrollviewer xaml entirely and it works in my game now but it only scrolls on mousewshell if it has FOCUS ( i must click on it first ) , not just when hover like in Studio. So again I am not finding Studio and my Game to have 1:1 functionality.
I am also missing: Unknown element type 'noesis:LayoutScaler' (NoesisGUIExtensions.LayoutScaler), maybe i am doing something very wrong. But i cannot find any gui extension components to register.
As an example Nine Slicing from Studio seems to be missing from the SDK, it is available as a sample in Blend projects but I cannot find evidence that it can be registered in my game from the sdk and posts on this forum seem to back this up. So I steal the c++ example and upgrade the namespaces so it reads as a GUIExtension like how studio formats it, steal the xaml, but it doesnt quite work in game still. Debugging: Thickness Top,Left,Bottom,Right *do not bind* in my game. Not even to a textblock with {Binding Slices.Top }. So I do some scripting and steal the thickness in OnSlicesChanged which does have the correct values even tho they dont bind and assign it to 4 individual floats. I bind the new floats to the xaml instead of default Slices.Top etc and now Nine Slicing from studio works in my game!
But now because the xaml is now different and studio has no idea about my custom controls it doesnt show in Studio correctly xD. I ended up solving that by only loading the xaml overwrite game side.
So I see sort of a disconnect here which makes things like playing the UI in editor or even much designing in editor not nearly as useful since my game and my designer cannot share the same controls or even visuals. Is the intention eventually I build studio from source so I can share components between my game and studio? If so is there any update on when indie license owners can have access to this? Can I really make a game UI without any ability to do view scripting? Is there some way I can build this nine slice component ( which really is just some bindings and some rectangles ) without c++ at all in a re-usable way that i just set the outer slices and image source that i am totally overlooking?
I think more documentation could be prepared about the transition from Blend ( which ive never used before so have surface level understanding of ) with its code-behind layer to Studio which focused only on Commands and Data Binding since the philosophy does not seem clear an outsider ( or i am too thick to find this information :) ). its not clear how i can build the same complex apps that are shown in the blend examples if all my code is not seen by studio.
It was also a little disappointing for this rabbit hole to be specifically about Nine Slicing as this is the Bread and Butter of UI in my opinion. It would be great if nine slicing was available as an Image Brush, you even already have all the controls ready for editing the corner regions with similar properties the like Viewport regions.
One other small feedback is it would be very great if asset selectors ( like choosing ImageSource ) had a filter, if you load up the project with many many assets its super difficult to find what you want. It would be nice if i could just start typing and it would filter.
I have 0 interest in using Blend or Visual Studio to design UI so my focus here is entirely on Noesis Studio. Many thanks to the devs for releasing the beta and letting me try it out and thank you for reading!
Small edit: the more controls I use in Studio the more difference I am seeing in engine using the default themes. Are they really quite out of date with eachother or have I done something wrong? Specifically now I am seeing that the mouse triggers for the scrollviewer cause my entire app to stop rendering. I redid the scrollviewer xaml entirely and it works in my game now but it only scrolls on mousewshell if it has FOCUS ( i must click on it first ) , not just when hover like in Studio. So again I am not finding Studio and my Game to have 1:1 functionality.
I am also missing: Unknown element type 'noesis:LayoutScaler' (NoesisGUIExtensions.LayoutScaler), maybe i am doing something very wrong. But i cannot find any gui extension components to register.