我有StoryBoard的资源

  <Window.Resources>
    <Storyboard x:Key="Fading" Storyboard.TargetName="NotifyWindow" Storyboard.TargetProperty="Opacity" >
        <DoubleAnimation From="1" To="0" Duration="0:0:1">
        </DoubleAnimation>
    </Storyboard>
  </Window.Resources>

在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 移动到另一个程序集。所以我需要指定StoryBoard.TargetName表单代码。我怎样才能做到这一点?

最佳答案

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

参见C#示例here:

Storyboard.SetTargetName(yourAnimation, "NotifyWindow");

关于c# - StoryBoard-从后台代码设置目标名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5301018/

10-12 01:12
查看更多