Storyboard was never applied to this object for interactive control

7 posts, 0 answers
  1. Tyler
    Tyler avatar
    17 posts
    Member since:
    Jun 2016

    Posted 10 Nov 2016 Link to this post

    I saw there was a post about this several years back, but the OP never followed up..

    I am getting the " System.Windows.Media.Animation Warning: 6 : Unable to perform action because the specified Storyboard was never applied to this object for interactive control.; Action='Stop'; Storyboard='System.Windows.Media.Animation.Storyboard'; Storyboard.HashCode='11303829'; Storyboard.Type='System.Windows.Media.Animation.Storyboard'; TargetElement='System.Windows.Media.Animation.Storyboard'; TargetElement.HashCode='11303829'; TargetElement.Type='System.Windows.Media.Animation.Storyboard' "

     

    I have tried everything I can think of (hopefully not missing something small and silly..).  

    Here is the storyboard itself in the UserCont

    <Storyboard x:Key="FlashingPanel" RepeatBehavior="Forever" AutoReverse="True">
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)"
                                       Storyboard.TargetName="TaskPanelItem">
            <EasingDoubleKeyFrame KeyTime="0:0:0.8" Value="0" />
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>

     

    Here is the 'grid' section that utilizes the storyboard.

    <Grid Grid.Column="1" Grid.Row="1">
                <telerik:RadPanelBar x:Name="TaskRadPanel"
                                     Background="{StaticResource UserControlbackground}"
                                     Width="Auto"
                                     Height="Auto"
                                     Orientation="Horizontal"
                                     Margin="5, 8, 5, 10"
                                     BorderBrush="Transparent"
                                     FocusVisualStyle="{x:Null}"
                                     ItemContainerStyle="{StaticResource TaskRadPanelItemStyle}">
     
                    <telerik:RadPanelBarItem x:Name="TaskPanelItem"
                                             HeaderTemplate="{StaticResource MyTaskHeaderTemplate}"
                                             HorizontalContentAlignment="Right">
                         
                            <telerik:RadPanelBarItem.Triggers>
                                <EventTrigger RoutedEvent="FrameworkElement.Loaded">
                                    <EventTrigger.Actions>
                                        <BeginStoryboard x:Name="MyFlashingStory" Storyboard.TargetName="TaskPanelItem"  
     Storyboard="{StaticResource FlashingPanel}"/>
                                    </EventTrigger.Actions>
                                </EventTrigger>
                            </telerik:RadPanelBarItem.Triggers>
                         
                         
                            <i:Interaction.Triggers>
     
                                <ei:DataTrigger Binding="{Binding MyTeamHasTasks, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Value="True">
                                    <ei:ControlStoryboardAction Storyboard="{StaticResource FlashingPanel}"
                                                            ControlStoryboardOption="Play" />
                                </ei:DataTrigger>
     
                                <ei:DataTrigger Binding="{Binding MyTeamHasTasks, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Value="False">
                                    <ei:ControlStoryboardAction Storyboard="{StaticResource FlashingPanel}"
                                                            ControlStoryboardOption="Pause" />
                                </ei:DataTrigger>
     
                                <i:EventTrigger EventName="Expanded" SourceName="TaskPanelItem">
                                <ei:ControlStoryboardAction Storyboard="{StaticResource FlashingPanel}"
                                                            ControlStoryboardOption="Stop" />
                            </i:EventTrigger>
                             
                            <i:EventTrigger EventName="Collapsed" SourceName="TaskPanelItem">
                                <ei:ControlStoryboardAction Storyboard="{StaticResource FlashingPanel}"
                                                            ControlStoryboardOption="Play" />
                            </i:EventTrigger>
                             
                        </i:Interaction.Triggers>
                         
                        <telerik:RadListBox ItemsSource="{Binding MyTeamTaskList}" >
                            <telerik:RadListBox.ItemsPanel>
                                <ItemsPanelTemplate>
                                    <StackPanel Orientation="Vertical" />
                                </ItemsPanelTemplate>
                            </telerik:RadListBox.ItemsPanel>
                            <telerik:RadListBox.ItemTemplate>
                                <DataTemplate>
                                    <Grid>
                                        <TextBlock Text="{Binding Description}"
                                                   FontFamily="Sengo UI"
                                                   FontSize="14"
                                                   VerticalAlignment="Center"
                                                   Foreground="RoyalBlue" />
                                    </Grid>
                                </DataTemplate>
                            </telerik:RadListBox.ItemTemplate>
                        </telerik:RadListBox>
     
                    </telerik:RadPanelBarItem>
                </telerik:RadPanelBar>
            </Grid>

     

    MyTeamHasTasks is a boolean in my ViewModel.

     

    First EventTrigger Expanded: ControlStoryboardAction: Stop  - Throws System.Windows.Media.Animation Warning: 6.

    Second EventTrigger Collapsed: ControlStoryboardAction: Play - Works fine.

     

    If I expand the TaskPanel again (firing the first eventtrigger from above) everything works as it should at this point and on..

     

    BUT the VERY first time the ControlStoryboardAction: Stop is executed, it gives the System.Windows.Media.Animation Warning: 6.

     

    For testing purposes, I replaced the binding boolean field (MyTeamHasTasks) with a checkbox and then bound the checkbox to the boolean field (MyTeamHasTasks), this route does not give me any issues...  Makes me wonder why it doesn't work they way I initially implemented it as it achieves the same thing.

     

    Any idea as to how I can get around this?  I do not think this is a bug, I feel like I have possibly not implemented this accurately.

    I'd like to do this without ANY code-behind.

  2. Evgenia
    Admin
    Evgenia avatar
    1437 posts

    Posted 11 Nov 2016 Link to this post

    Hi Tyler,

    I don't think that you are doing something wrong in your code. In fact everything seems correct to me. I believe (even though my fast google search for similar issues didn't brought to muy attention no specific information mentioning) that DataTrigger combined with UpdateSourceTrigger set to PropertyChanged doesn't work correctly the first time even though you have specified TwoWay Binding. 

    I'd recommend that you try the PropertyChangedTrigger instead, mentioned in the Blend SDK for WPF. Here's more information about it.

    Regards,
    Evgenia
    Telerik by Progress
    Do you need help with upgrading your WPF project? Try the Telerik API Analyzer and share your thoughts!
  3. Tyler
    Tyler avatar
    17 posts
    Member since:
    Jun 2016

    Posted 21 Nov 2016 in reply to Evgenia Link to this post

    I am not entirely sure this will work in my scenario... 

    It is the "Expanded" event that I need triggered, not a property..

     

    Is there yet to be a solution for this?

  4. Evgenia
    Admin
    Evgenia avatar
    1437 posts

    Posted 24 Nov 2016 Link to this post

    Hi Tyler,

    I'm sorry for my previous answer -- I omitted the details clearly stated in your initial post -- the Warning that you get is related to ''Stop" ControlStoryBoardOption which is about to get reached on Expanded Event and not on DataTrigger as I wrongly assumed.
    Since this works as expected when you manually Expand the RadPanelBarItem (the Expanded event gets fired and so the required Storyboard kicks in) is there any chance that initially none of your RadPanelBarItem-s are Expanded? If so don't you think such warning is expected? Please correct me if I'm wrong so that we both are on the same page.

    Regards,
    Evgenia
    Telerik by Progress
    Telerik UI for WPF is ready for Visual Studio 2017 RC! Learn more.
  5. Tyler
    Tyler avatar
    17 posts
    Member since:
    Jun 2016

    Posted 08 Dec 2016 in reply to Evgenia Link to this post

    Let me start from the beginning.

    I have a RadPanelBar.  Inside I have a single RadPanelBarItem.

    On the RadPanelBarItem I have some "interaction" triggers: 

    <i:Interaction.Triggers>
        <ei:DataTrigger Binding="{Binding MyTeamHasTasks, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Value="True">
            <ei:ControlStoryboardAction Storyboard="{StaticResource FlashingPanel}"
                                    ControlStoryboardOption="Play" />
        </ei:DataTrigger>
        <ei:DataTrigger Binding="{Binding MyTeamHasTasks, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Value="False">
            <ei:ControlStoryboardAction Storyboard="{StaticResource FlashingPanel}"
                                    ControlStoryboardOption="Pause" />
        </ei:DataTrigger>
        <i:EventTrigger EventName="Expanded" SourceName="TaskPanelItem">
            <ei:ControlStoryboardAction Storyboard="{StaticResource FlashingPanel}"
                                    ControlStoryboardOption="Stop" />
        </i:EventTrigger>
        <i:EventTrigger EventName="Collapsed" SourceName="TaskPanelItem">
            <ei:ControlStoryboardAction Storyboard="{StaticResource FlashingPanel}"
                                    ControlStoryboardOption="Play" />
        </i:EventTrigger>
    </i:Interaction.Triggers>

     

    Using this StoryBoard:

    <Storyboard x:Key="FlashingPanel" RepeatBehavior="Forever" AutoReverse="True">
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)"
                                       Storyboard.TargetName="TaskPanelItem">
            <EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="0" />
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>

     

    Nothing in the code behind starts nor stops the story board.  The "interaction" triggers you see are the ONLY piece of code that deals with the story board.

     

    The RadPanelBarItem is NOT expanded on load, it is collapsed.

    The Storyboard is started when the program starts because the binding property for the storyboard to start is triggered since the UpdateSourceTrigger=PropertyChanged.

    When I expand the RadPanelBarItem for the first time, this error is displayed and the Storyboard never stops as it should.  I then collapse the storyboard and then re-expand it and the STOP trigger works as intended.

     

    HOW can I get the storyboard to stop on the first "expand" event?

  6. Evgenia
    Admin
    Evgenia avatar
    1437 posts

    Posted 13 Dec 2016 Link to this post

    Hello Tyler,

    This is to let you know that I'll need some more time to prepare answer for you. I'll contact you as soon as there is some concrete information I can provide.

    Thanks in advance for your patience and understanding.

    Regards,
    Evgenia
    Telerik by Progress
    Try our brand new, jQuery-free Angular 2 components built from ground-up which deliver the business app essential building blocks - a grid component, data visualization (charts) and form elements.
  7. Martin Ivanov
    Admin
    Martin Ivanov avatar
    1442 posts

    Posted 22 Dec 2016 Link to this post

    Hi Tyler,

    I prepared a small example based on your code in order to reproduce the error, but to no avail. Can you please take a look at the attached project and let me know if I am missing something?

    Regards,
    Martin
    Telerik by Progress
    Want to extend the target reach of your WPF applications, leveraging iOS, Android, and UWP? Try UI for Xamarin, a suite of polished and feature-rich components for the Xamarin framework, which allow you to write beautiful native mobile apps using a single shared C# codebase.
Back to Top