3

I observe in my WPF application warning in VIsual Studio Output panel with following text:

WPF 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='65981734'; Storyboard.Type='System.Windows.Media.Animation.Storyboard'; TargetElement='System.Windows.Controls.ContentPresenter'; TargetElement.HashCode='49882372'; TargetElement.Type='System.Windows.Controls.ContentPresenter'

How can I 'reverse' HashCode to some xaml element? How to find where that animation is attached?

Thanks in advance

Askolein
  • 3,250
  • 3
  • 28
  • 40
Dusan Kocurek
  • 445
  • 3
  • 8
  • 22

3 Answers3

5

You can use the following code to find your StoryBoard:

private string GetStoryBoardNameByHashCode(int hashCode)
{
    foreach (DictionaryEntry resource in Resources)
    {
        if (resource.Value is Storyboard)
        {
            if (resource.GetHashCode() == hashCode)
                return ((Storyboard) resource.Value).Name;
        }
    }
    return String.Empty;
}

Execute the method like so:

    string storyBoardName = GetStoryBoardNameByHashCode(65981734);

This should be able to get the StoryBoard-Name with the HashCode (ór if you want to get the specified StoryBoard, you can return that as well). Mind you that the ResourceDictionary is on Window-scope (local) here. So, if the StoryBoards are all located in the ResourceDictionary of the Application (App.xaml) then change 'Resources' to:

Application.Current.Resources

There may be an alternative way to get all the Resources of a WPF-application instead of just the local or Application-scope, but haven't looked into this. Hopefully, this code allows you to find your problem.

pdvries
  • 1,372
  • 2
  • 9
  • 18
2

Actually, I had run into the same problem as you.

I had found that the animation's Begin() method didn't get called before its Stop() method being called. So the Runtime throw a warning that the Stop action couldn't be invoked.

Martin Tournoij
  • 26,737
  • 24
  • 105
  • 146
Yang C
  • 536
  • 5
  • 16
1

My issue was I had a trailing space in my EventName.

<interactivity:EventTrigger EventName="SelectionChanged ">

changed to

<interactivity:EventTrigger EventName="SelectionChanged">
LawMan
  • 3,469
  • 1
  • 29
  • 32