WPF控件分为各种篮子。有些控件属于System.Windows.Controls命名空间,其他属于Panel和其他东西。我有兴趣将控件作为Panel或Control类型,以便我可以更改Background属性。以下代码无效:
var element = ((sender as Panel) ?? (sender as Control));
答案 0 :(得分:6)
不幸的是,“魔法”var关键字仍然是静态的(在编译时)已经解决,你可能会想到的是新的dynamic
C#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
答案 1 :(得分:1)
编译器无法从您提供的表达式推断出element
的类型。