WPF Animation Warning: 6 : Unable to perform actio

2019-01-12 08:16发布

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

标签: c# wpf xaml
3条回答
ら.Afraid
2楼-- · 2019-01-12 08:35

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.

查看更多
孤傲高冷的网名
3楼-- · 2019-01-12 08:40

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.


Here's the sample code, just in case you'd need it!

查看更多
手持菜刀,她持情操
4楼-- · 2019-01-12 08:42

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

<interactivity:EventTrigger EventName="SelectionChanged ">

changed to

<interactivity:EventTrigger EventName="SelectionChanged">
查看更多
登录 后发表回答