可以从UIElement(代码中)中发现应用于UIElement的WPF故事板吗?

时间:2013-06-26 02:08:59

标签: wpf storyboard uielement

有没有办法询问UIElement以确定哪些故事板会影响它?

例如,Storyboard资源可以在许多地方定义(例如Application.Resources,Window.Resources,Control.Resources)。如果您引用了受Storyboard影响的控件(比如RotateTransform),是否有办法询问控件以发现Storyboard

我不想要的只是通过知道它的名称来获取Storyboard的引用。

1 个答案:

答案 0 :(得分:0)

没有直接的方式来了解您的要求,但您可以使用以下代码:

假设“btn”是您要搜索的控件Storyboard

  Button btn = new Button();
        List<Storyboard> lst = new List<Storyboard>();
        foreach (var item in this.Resources)
        {
            if (item is Storyboard)
            {
                Storyboard temp = item as Storyboard;

                foreach (var animation in temp.Children)
                {
                    if (animation.GetValue(Storyboard.TargetProperty) == btn)
                    {
                        lst.Add(temp);
                    }
                }
            }
        }