2010-11-09 74 views
0

Silverlight 4,但我不确定这是否也适用于WPF。在代码中设置Storyboards TargetName

这是一些代码,我必须循环控制,并为它们设置动画。第一个完美,但第二次我得到

System.InvalidOperationException:2218发生错误。 ...在MS.Internal.XcpImports.SetValue(...

它似乎不喜欢把自己的目标名称设置第二次我也试过,行:

sbShowPopup.SetValue(Storyboard.TargetNameProperty, toPopup.Name); 

代码(这是一个有点难看 - 只是做一个POC现在):

 Messenger.Default.Register<Item>(this, "O", I => { 
      if (AvailablePopups.Peek() == null) { 
       MessageBox.Show("Nothing available"); 
       return; 
      } 

      Control toPopup = AvailablePopups.Pop(); 
      toPopup.DataContext = I; 

      try { 
       Storyboard.SetTargetName(sbShowPopup, toPopup.Name); 
      } catch (Exception E) { 
       MessageBox.Show(E.ToString()); 
      } 

      this.sbShowPopup.Begin(); 
     }); 

回答

1

如果别人绊倒在这里,你有一个目标设置为别的东西之前,停止动画:

sbShowPopup.Stop();