View Issue Details

IDProjectCategoryView StatusLast Update
0004438NoesisGUIStudiopublic2026-01-29 02:02
Reporterdstewart Assigned Todfranjic  
PrioritynormalSeveritymajor 
Status resolvedResolutionfixed 
Product VersionStudio_Beta 
Target VersionStudio_Beta 
Summary0004438: Enveloping a ScrollBar's PART_Track in a Grid Produces an Error
Description

Currently, if you desire to customise the background behind a Scrollbar, you would add a background Element within the hierarchy within the PART_VerticalScrollBar Template.

UPDATE:
Note that this same error also occurs when enveloping the ScrollBar's RepeatButton's 'BackgroundBorder' with a Grid.

However, since the entire Navigator is composed of Parts, it is not possible to add further children by default.
With that in mind, a Grid needs to be created at the Root of the Template.
However, enveloping the root PART_Track in a Grid Element produces a XAML error.

It then appears that, once noticing the error, ungrouping the PART_Track from being contained in a Grid, the error in the Resource dictionary then permanently persists in Studio. I've been unable to repro this, but I have even had a couple instances of the Error in Studio still persisting even if the error is successfully no longer present in VSCode.

EDIT: After discussion, this is due to Studio writing the Triggers before the composition, when it should be writing them before.


Repro Steps:

1) Create a Studio Project containing a MainPage.xaml
2) Introduce a ScrollViewer to the Page, and directly within it, drag in a TextBlock with a width of 80, and a Font Size of 300 as to make the ScrollViewer's ScrollBar visible.

3) Create a new ScrollViewer Template from the ScrollViewer present on the stage. (Saved to GlobalResources, saved as any name)
This will open the inline editor for the ScrollViewer Template.

4) Identify the PART_VerticalScrollBar and create a new Template for it. (Saved to GlobalResources, saved as any name)
This will open the inline editor for the ScrollViewer/PART_VerticalScrollBar Template.

5) Wrap the PART_Track with a Grid Element, either by selecting it and pressing Ctrl+G, or right-clicking on it, and from the Context Menu navigating to Layout-->Replace With -->Grid

Observe the GlobalResources.xaml tab procucing an error.

6) Save all documents as to be able to view the Error in VSCode.

7) Navigate to the GlobalResources.xaml tab and click on the red 'x' in the lower-right-hand corner to view the code associated with the error.

Observe that the error produced is: <Setter TargetName="PART_Track" Value="True" Property="IsDirectionReversed"/>

The TargetName is independent of whether the PART_Track is inside of a Grid or at the Root of the Template, and so that in theory, it should have remained unaffected.

8) Return to Studio, and re-enter the Template where this Grid was created.

9) Remove the Grid by pressing Ctrl+Shift+G, to, in theory, return it to a non-erroneous state.

In some instances, observe how removing the Grid, actually kills the entire visible hierarchy in the Navigator.

10) Close and re-open MainPage.xaml, and re-enter the Template.

Observe how the hierarchy now displays as expected in the Navigator.

11) Save all open Documents.

Observe how the GlobalResources.xaml error still persists.

Expected Results: Enveloping a PART in another Element should not effect Triggers that have their TargetNames otherwise unchanged.

PlatformAny

Activities

dfranjic

dfranjic

2026-01-29 02:02

developer   ~0011789

This is now fixed with the new TextEditor API. "Triggers" property is kept at the bottom of ControlTemplate node.

Issue History

Date Modified Username Field Change
2025-10-21 15:59 dstewart New Issue
2025-10-21 16:01 dstewart Summary Enveloping a ScrollBar's PART_Track in a Grid Produces a Phantom Error => Enveloping a ScrollBar's PART_Track in a Grid Produces an Error
2025-10-21 16:42 dstewart Description Updated
2025-10-21 16:46 sfernandez Assigned To => dfranjic
2025-10-21 16:46 sfernandez Status new => assigned
2025-10-21 16:46 sfernandez Target Version => Studio_Beta
2025-10-22 14:49 dstewart Description Updated
2025-10-22 14:49 dstewart Description Updated
2025-10-22 14:50 dstewart Description Updated
2025-10-22 14:50 dstewart Description Updated
2026-01-29 02:02 dfranjic Status assigned => resolved
2026-01-29 02:02 dfranjic Resolution open => fixed
2026-01-29 02:02 dfranjic Note Added: 0011789