View Issue Details

IDProjectCategoryView StatusLast Update
0004788NoesisGUIStudiopublic2026-02-06 16:46
ReporterRafael Munoz Assigned Tosfernandez  
PrioritynormalSeveritymajor 
Status feedbackResolutionopen 
Product VersionStudio_Beta 
Summary0004788: Storyboards with databound key values do not behave the same in pages and control templates
Description

Note: Probably the editor is just a side effect and is a runtime thing.

I was trying to animate a ProgressBar as its value changes, for that i use a simple Story with a keyframe with a value that is bound to the target progress new value.

The technique worked fine within a page, but when moved into a control it was no longer working.

I checked a similar composition in WPF and a very similar thing happens. The version in plain document works fine, when in control the moment you interact with it it crashes with a name scope issue ( No applicable name scope exists to resolve the name 'ProgressCurveInternal' )

It seems like when the story is in ControlTemplate.Resources it cannot find ProgressCurveInternal. In WPF i can workaround the limitation by moving the animation into Resources of the first child of the template. But in Noesis it is not solved that way either.

I attach both Noesis and WPF projects for reference.

Expected:
Storyboard animation with bindings work the same everywhere
Reports in editor where it is not possible ( if possible with a suggested workaround )

Actual:
Editor seems fine binding things that cannot resolve ( it can be observed the value is 0 when it will not work in runtime )
In page it works fine
In control templates it does not work

Attached Files
AnimationBindingWeirdness.gif (107,592 bytes)   
AnimationBindingWeirdness.gif (107,592 bytes)   
PlatformAny

Activities

sfernandez

sfernandez

2026-02-06 16:45

manager   ~0011853

Placing the Storyboard in the ControlTemplate.Resources doesn't work because the resource is shared and the binding can't be resolved in the context of the ControlTemplate.

Moving it to the Grid should work, but something is wrong in Noesis.
In the meantime you can make it work by defining the Storyboard in the ControlStoryboardAction itself:

<ControlTemplate x:Key="ProgressBar.Template" TargetType="ProgressBar">
  ...
  <Grid x:Name="root" Width="300" Height="300">
    ...
                <b:ControlStoryboardAction>
                  <b:ControlStoryboardAction.Storyboard>
                    <Storyboard>
                      <DoubleAnimationUsingKeyFrames Storyboard.TargetName="ProgressCurveInternal" Storyboard.TargetProperty="(Shape.TrimEnd)">
                        <LinearDoubleKeyFrame KeyTime="00:00:00.3000000" Value="{Binding Path=DataContext.ProgressPercent, ElementName=root}"/>
                      </DoubleAnimationUsingKeyFrames>
                    </Storyboard>
                  </b:ControlStoryboardAction.Storyboard>
                </b:ControlStoryboardAction>

Issue History

Date Modified Username Field Change
2026-02-06 14:07 Rafael Munoz New Issue
2026-02-06 14:07 Rafael Munoz File Added: AnimationBindingWeirdness.gif
2026-02-06 14:07 Rafael Munoz File Added: AnimationBindingWeirdness_WPF.gif
2026-02-06 14:07 Rafael Munoz File Added: AnimationBindingWeirdness_WPF.zip
2026-02-06 14:07 Rafael Munoz File Added: DataboundAnimationWeirdness_Noesis.zip
2026-02-06 15:40 Rafael Munoz Description Updated
2026-02-06 16:45 sfernandez Note Added: 0011853
2026-02-06 16:45 sfernandez Assigned To => sfernandez
2026-02-06 16:45 sfernandez Status new => assigned
2026-02-06 16:46 sfernandez Status assigned => feedback