所以我将窗口传递给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;
感谢您的帮助。
答案 0 :(得分:1)
Window.LeftProperty
是一种静态方法,无法动态访问。你可以试试
theWindow.BeginAnimation(Window.LeftProperty, _leftAnimation);