WPF控件分为不同的篮子.有些控件属于System.Windows.Controls命名空间,其他属于Panel和其他东西.我有兴趣将控件作为Panel或Control类型,以便我可以更改Background属性.以下代码无效:
var element = ((sender as Panel) ?? (sender as Control));
Run Code Online (Sandbox Code Playgroud)
不幸的是,"神奇的" var关键字仍然静态地(在编译时)被解析,你可能会想到的是新的dynamicC#4.0关键字.
否则,除了以外没有别的方法可以做到
Panel panelElement = sender as Panel;
Control controlElement = sender as Control;
if(panelElement != null)
//do stuff for panel
else if(controlElement != null)
//do stuff for control
Run Code Online (Sandbox Code Playgroud)