是否有方法询问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);
}
}
}
}