View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0004949 | NoesisGUI | Studio | public | 2026-03-30 18:08 | 2026-04-06 12:14 |
| Reporter | dstewart | Assigned To | sfernandez | ||
| Priority | normal | Severity | major | ||
| Status | assigned | Resolution | open | ||
| Product Version | Studio_Beta | ||||
| Target Version | Studio_Beta | ||||
| Summary | 0004949: 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'. 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'. 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. 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) | ||||
| Attached Files | |||||
| Platform | Any | ||||
| 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 |