在c#中为`dynamic`类型设置动画对象

时间:2014-06-26 19:00:16

标签: c# .net dll

所以我将窗口传递给dll,我将其作为dynamic类型的对象接收

dynamic theWindow = ...;

我需要为该窗口的属性设置动画,我尝试了以下内容:

theWindow.BeginAnimation(theWindow.LeftProperty, _leftAnimation);

但它不起作用。所以我采取的一步是检查如果我可以访问theWindow.LeftProperty,但我得到以下例外:

Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Member 'System.Windows.Window.LeftProperty' cannot be accessed with an instance reference; qualify it with a type name instead
   at CallSite.Target(Closure , CallSite , Object )
   at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0)
   at blablabla ...

它说“用类型名称来限定它”,但我不知道它意味着什么......

但是可以访问属性并按预期工作:

theWindow.MaxWidth = theWindow.Width + 108;

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

Window.LeftProperty是一种静态方法,无法动态访问。你可以试试

theWindow.BeginAnimation(Window.LeftProperty, _leftAnimation);