应用于UIElement的WPF情节提要是否可以从UIElement(代码中)中断开



是否有方法询问UIElement以确定哪些情节提要正在影响它?

例如,Storyboard资源可以在许多地方定义(例如Application.resources、Window.Resourts、Control.Resource)。如果您引用了受Storyboard影响的控件(比如RotateTransform),有没有任何方法可以询问该控件以发现Storyboard

我不想仅仅通过知道Storyboard的名称来获得它的引用。

没有直接的方法可以知道你在问什么,但你可以使用以下代码:

假设"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);
                    }
                }
            }
        }

最新更新