StoryBoard – 从代码隐藏中设置目标名称

我有资源中的StoryBoard

      

在WindowClosing上我有下一个代码

 private void NotifyWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e) { Storyboard fading = this.Resources["Fading"] as Storyboard; if (fading != null && !fadingCompleted) { fading.Completed += FadingStoryBoard_Completed; fading.Begin(); e.Cancel = true; } } private void FadingStoryBoard_Completed(object sender, EventArgs e) { fadingCompleted = true; Close(); fadingCompleted = false; } 

这工作正常,但我想将这个故事板移动到另一个组件。 所以我需要指定StoryBoard.TargetName表单代码。 我怎样才能做到这一点?

可以通过名为"Set" + PropertyName静态辅助方法从代码设置附加属性

请参阅此处的 C#示例:

 Storyboard.SetTargetName(yourAnimation, "NotifyWindow"); 

将依赖项属性设置为依赖项对象的标准方法与附加属性相同:

 dependencyObjectInstance.SetValue(SampleClass.PropertyName + "Property", value); 

在你的例子中:

 fading.SetValue(Storyboard.TargetNameProperty, "NotifyWindow");