View Issue Details

IDProjectCategoryView StatusLast Update
0004949NoesisGUIStudiopublic2026-04-06 12:14
Reporterdstewart Assigned Tosfernandez  
PrioritynormalSeveritymajor 
Status assignedResolutionopen 
Product VersionStudio_Beta 
Target VersionStudio_Beta 
Summary0004949: Studio Offers No Protections Against Breaking Resource Re-Ordering
Description

In the case of Resources with dependencies on others (such as a 'Style_Derived' is 'BasedOn' 'Style_Core'), their ordering in the ResourceDictionary matters in that to work, 'Style_Core' must be declared and situated before 'Style_Derived' in the ResourceDictionary.

However, in Studio, two Resources where one has a dependency on one being before it in the list, can be re-arranged in the Dictionary in a way that can break this required ordering.

Studio does not currently offer any protection against doing this, nor provides any explanation as to why a XAML error is generated for performing this action.

See attached video.


Repro Steps:

1) Create a Studio Project featuring a MainPage.xaml

2) Introduce a TextBlock into the root Grid, right-click on it, and from its context menu, select 'Style'-->'TextBlock'-->'Create'.

3) In the PopUp that appears directly after, name it 'MyTextBlock_Default_Style'.
This will open the Style in the Style Inline Dummy Editor.

4) Make any visual changes to the Properties within the Style.

5) Exit the Style Dummy Editor by clicking on the Home icon in the upper-right of the Stage, and right-click on the TextBlock on the Stage again, and navigate to 'Style'-->'textBlock'-->'Create'.

6) In the PopUp tha appears directly after, name it 'MyTextBlock_Derived_Style'.
This will open the Style in the Style Inline Dummy Editor.

7) Exit the Style Dummy Editor by clicking on the Home icon in the upper-right of the Stage, then navigate to the Resources Panel, and identify within GlobalResources.xaml, the two TextBlock Styles created so far.

8) Hover over 'MyTextBlock_Derived_Style', and click on the pencil icon to edit it.

9) In the Style's Properties Panel, set its 'BasedOn' Style to 'MyTextBlock_Default_Style.
At this point, the TextBlock on-Stage should look like how it was configured in 'MyTextBlock_Default_Style', even if its using 'MyTextBlock_Derived_Style'

10) In the Resources Panel, hover over 'MyTextBlock_Derived_Style' and drag it above 'MyTextBlock_Default_Style' in the Resources list.

Observe how immediately after doing so, a GlobalResources.xaml error appears in the GlobaResources.xaml tab.

11) Save all changes, and navigate to the GlobalResources.xaml.

12) Click on the XAML Error indicator in the lower-right of the Stage.

Observe how the only error signalled is that the 'MyTextBlock_Default_Style' Resource has not been found.

Expected Results: Studio protects the user from being able to move a Resource dependent on another one, above it in the Dictionary, and displays a relevant warning when attempted. (Perhaps similar to how we prevent users from moving Elements into single-child Elements that already have a child, via tooltip)
or
Expected Results: Studio throws a warning toast when the breaking action has taken placed (eg: "Resource Dependency Lost: A Resource BasedOn another must be placed below it in the Resource list")

Attached Files
PlatformAny

Activities

Issue History

Date Modified Username Field Change
2026-03-30 18:08 dstewart New Issue
2026-03-30 18:08 dstewart File Added: 2026-03-30 11-47-34.mp4
2026-04-06 12:14 sfernandez Assigned To => sfernandez
2026-04-06 12:14 sfernandez Status new => assigned
2026-04-06 12:14 sfernandez Target Version => Studio_Beta