将动画的目标设置为在运行时创建的自定义用户控件

时间:2013-07-23 20:22:19

标签: c# wpf storyboard invalidoperationexception

我正在使用自定义控件来显示新闻数据。我将控件存储在代码隐藏中,因此我可以显示它而无需重新加载信息(需要2-5秒才能执行与填充控件相关的所有任务)。新闻控制基本上是ScrollViewer包裹在StackPanel中,因此没有太多内容。当我调用一个方法时,我正试图设置控件的高度和宽度,但我得到一个InvalidOperationException

"name cannot be found in the name scope of MainWindow"

我在MainWindow构造函数中设置控件的名称:

NewsControl _newsControl  = new NewsControl() { Name = "newsControl" };

当我使用属性值设置DoubleAnimation的目标时,我甚至尝试过访问它:

Storyboard.SetTargetName(heightAnimation, _newsControl.Name);


如上所述,控件不在XAML中,因为我还需要代码隐藏中的控件...所以帮助?

1 个答案:

答案 0 :(得分:3)

由于您有对控件的引用,为什么不使用Storyboard.SetTarget

Storyboard.SetTarget(heightAnimation, _newsControl);