Sasha-Egosoft
Topic Author
Posts: 3
Joined: 14 Jan 2026, 18:34

Noesis Studio 4.0 integration with a custom engine help needed

17 Sep 2026, 02:05

Hi,

I am trying to integrate Noesis Studio with a custom engine. There are several problems I would appreciate support with.

1. When the Noesis::Studio::Create("projectpath", options); is invoked, the log is filled with a bunch of errors:
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2844,51): Binding failed: Path=PlacementTarget.Tag.EditTextCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2846,58): Binding failed: Path=PlacementTarget.Tag.ImportSVGCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2848,59): Binding failed: Path=PlacementTarget.Tag.CurrentScope.RevealObjectInVSCodeCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2852,71): Binding failed: Path=PlacementTarget.Tag.CutCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2858,72): Binding failed: Path=PlacementTarget.Tag.CopyCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2864,73): Binding failed: Path=PlacementTarget.Tag.PasteCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2871,55): Binding failed: Path=PlacementTarget.Tag.PasteAsTextCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2874,77): Binding failed: Path=PlacementTarget.Tag.DuplicateCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2880,71): Binding failed: Path=PlacementTarget.Tag.DeleteElementCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2890,34): Binding failed: Path=PlacementTarget.Tag.SelectionStyles, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ItemsControl.ItemsSource
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2910,34): Binding failed: Path=PlacementTarget.Tag.SelectionTemplates, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ItemsControl.ItemsSource
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2929,86): Binding failed: Path=PlacementTarget.Tag.ResetLayoutCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2931,52): Binding failed: Path=PlacementTarget.Tag.ResetSizeCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2935,78): Binding failed: Path=PlacementTarget.Tag.AlignSelectionCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2941,90): Binding failed: Path=PlacementTarget.Tag.AlignSelectionCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2947,80): Binding failed: Path=PlacementTarget.Tag.AlignSelectionCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2954,76): Binding failed: Path=PlacementTarget.Tag.AlignSelectionCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2960,88): Binding failed: Path=PlacementTarget.Tag.AlignSelectionCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2966,82): Binding failed: Path=PlacementTarget.Tag.AlignSelectionCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2975,59): Binding failed: Path=PlacementTarget.Tag.OrderSelectionCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2977,61): Binding failed: Path=PlacementTarget.Tag.OrderSelectionCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2979,62): Binding failed: Path=PlacementTarget.Tag.OrderSelectionCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2981,58): Binding failed: Path=PlacementTarget.Tag.OrderSelectionCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2985,72): Binding failed: Path=PlacementTarget.Tag.ChangeLayoutTypeCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2991,84): Binding failed: Path=PlacementTarget.Tag.ChangeLayoutTypeCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(2997,82): Binding failed: Path=PlacementTarget.Tag.ChangeLayoutTypeCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(3003,76): Binding failed: Path=PlacementTarget.Tag.ChangeLayoutTypeCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
/Studio;component/EditorStyles.xaml(3009,88): Binding failed: Path=PlacementTarget.Tag.ChangeLayoutTypeCommand, Source=ContextMenu(''), Target=MenuItem(''), TargetProperty=ButtonBase.Command
Can't solve PropertyPath: Dependency property 'ContextMenuService.PlacementTarget' returned null
The erros come from loading /Studio;component/EditorStyles.xaml, Studio;component/StudioRoot.xaml and /Studio;component/TimelineControl.xaml. I have tried to follow the StudioTool project to the best of my ability, but clearly missed something.

2. The Studio nevertheless gets loaded and is interactable in the engine, with issues. It does not make much sense to address those issues until the integration functions properly. However, I would like to ask about the "errors in xamls" indicator that is shown next to an asset, the one that opens VS Code when you click it. It does not show what errors are there in the Studio itself, and there are no errors shown in VS Code when it opens apart from some spell check issues (with the number of problems not matching what is reported in the Studio). Is there any documentation on how it is supposed to work?

3. I am trying to open a page from Themes sample, but it is not displayed properly styled in the Studio - UI elements in the engine itself, however, are. Are resources need to be separately loaded for the Studio, or is this issue related to me not properly initializing something in the pt. 1?
 
User avatar
jsantos
Site Admin
Posts: 4822
Joined: 20 Jan 2012, 17:18
Contact:

Re: Noesis Studio 4.0 integration with a custom engine help needed

17 Sep 2026, 14:32

As part of the SDK, we provide the source code for `StudioTool`. It is a sample of Studio integration that I recommend having a look at. You should also always compare your implementation with `StudioTool`. There is more information about the integration in the Integrating Studio tutorial.

(1) For now, mute the Binding channel in your log callback. We are aware that it is too verbose, and we will fix this at some point.

(2) We are also aware of this. There are a few limitations in the VS Code integration that we are working on. We will also display the errors directly in Studio, so you can get an idea of what is happening without having to switch to VS Code.

(3) What is the Themes sample?
 
Sasha-Egosoft
Topic Author
Posts: 3
Joined: 14 Jan 2026, 18:34

Re: Noesis Studio 4.0 integration with a custom engine help needed

17 Sep 2026, 18:33

Thank you for the reply! I was following both the tutorial and the source code for the `StudioTool` to the best of my ability - meaning, if there's an error, it's not obvious to me. Apart from not using the `Window` and `Application` components, and using `VkRenderDevice`, there does not seem to be a difference between my code and the code of the `StudioTool`. I also register some of the components from the NoesisApp namespace, similar to how it is done in the Unreal Engine integration code.

(2) So there is no way to figure out what the errors are? Is there a way to disable the error reporting functionality for now?

(3) Sorry for being imprecise - it's an edited `Data/ThemePreview.xaml`. Here is how it is being rendered in the engine:
theme-app.png

In the editor, however, it is butchered.
theme-editor.png

According to the docs, this indicates that the corresponding styles are missing. However, the `.noesis` project specifies the exact same resources dictionary used in the integration and I have verified that it is being provided to the Studio by the `XamlProvider`. The `Resources` tab in the Studio also shows the dictionary. Here's my resources file:
<ResourceDictionary
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

  <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="/Noesis.GUI.Extensions;component/Theme/NoesisTheme.DarkBlue.xaml"/>
    <ResourceDictionary Source="resources.colors.dark.xaml"/>
    <ResourceDictionary Source="resources.styles.xaml"/>
  </ResourceDictionary.MergedDictionaries>

</ResourceDictionary>
The logs show that the xamls related to `Theme/NoesisTheme.DarkBlue.xaml` are loaded:
[UI     ] 400.89 [NOESIS][Info]'studio:///P2;component/styles/resources.dark.xaml' loaded
[UI     ] 400.89 [NOESIS][Info]'studio:///Noesis.GUI.Extensions;component/Theme/NoesisTheme.Colors.Dark.xaml' loaded
[UI     ] 400.89 [NOESIS][Info]'studio:///Noesis.GUI.Extensions;component/Theme/NoesisTheme.Brushes.DarkBlue.xaml' loaded
[UI     ] 400.89 [NOESIS][Info]'studio:///Noesis.GUI.Extensions;component/Theme/NoesisTheme.Fonts.xaml' loaded
[UI     ] 400.89 [NOESIS][Info]'studio:///Noesis.GUI.Extensions;component/Theme/NoesisTheme.Styles.xaml' loaded
[UI     ] 400.89 [NOESIS][Info]'studio:///Noesis.GUI.Extensions;component/Theme/NoesisTheme.DarkBlue.xaml' loaded
[UI     ] 400.89 [NOESIS][Info]'studio:///P2;component/styles/resources.colors.dark.xaml' loaded
What could be the problem?
 
User avatar
jsantos
Site Admin
Posts: 4822
Joined: 20 Jan 2012, 17:18
Contact:

Re: Noesis Studio 4.0 integration with a custom engine help needed

18 Sep 2026, 12:16

Thank you for the reply! I was following both the tutorial and the source code for the `StudioTool` to the best of my ability - meaning, if there's an error, it's not obvious to me. Apart from not using the `Window` and `Application` components, and using `VkRenderDevice`, there does not seem to be a difference between my code and the code of the `StudioTool`. I also register some of the components from the NoesisApp namespace, similar to how it is done in the Unreal Engine integration code.
If you are able to reproduce the issue in our StudioTool, I can take a look at it. Without knowing the specific changes you made, though, it is difficult to understand what might be going wrong.

I recommend checking the reported errors after muting the bindings channel.
(2) So there is no way to figure out what the errors are? Is there a way to disable the error reporting functionality for now?
The errors are sent to your error callback.

Alternatively, you can launch the Inspector and connect it to your application. The errors will then appear in the console.
(3) Sorry for being imprecise - it's an edited `Data/ThemePreview.xaml`. Here is how it is being rendered in the engine:
I just dropped the following Snippets.noesis file into the Data folder:
<Project>
  <Assembly>Snippets</Assembly>
  <DefaultDataNamespace>Snippets</DefaultDataNamespace>
  <GlobalResources>Resources.xaml</GlobalResources>
</Project>
And added the following Resources.xaml:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
  <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="/Noesis.GUI.Extensions;component/Theme/NoesisTheme.DarkBlue.xaml" />
  </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
After that, I am able to view all the XAML files correctly in StudioTool, including ThemePreview.xaml.

There are a few errors in Time.xaml that are currently being investigated, but they are not important.
 
Sasha-Egosoft
Topic Author
Posts: 3
Joined: 14 Jan 2026, 18:34

Re: Noesis Studio 4.0 integration with a custom engine help needed

18 Sep 2026, 17:56

Thank you for your support - I was able to identify the issue within our code.
 
User avatar
jsantos
Site Admin
Posts: 4822
Joined: 20 Jan 2012, 17:18
Contact:

Re: Noesis Studio 4.0 integration with a custom engine help needed

18 Sep 2026, 20:08

Glad to help!

Who is online

Users browsing this forum: No registered users and 3 guests