Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WPF Animation Warning: 6 : Unable to perform action

Tags:

c#

wpf

xaml

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

like image 480
Dusan Kocurek Avatar asked Nov 27 '25 15:11

Dusan Kocurek


2 Answers

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.

like image 146
pdvries Avatar answered Nov 29 '25 05:11

pdvries


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.

like image 40
Yang C Avatar answered Nov 29 '25 06:11

Yang C



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!