Silverlight 4,但我不确定这是否也适用于WPF。
这是我必须通过控件循环并为其设置动画的一些代码。第一个完美,但第二次我得到了
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();
});
答案 0 :(得分:1)
如果其他人偶然发现,您必须在将目标设置为其他内容之前停止动画:
sbShowPopup.Stop();