2009-07-14 8 views
0

WPFコントロールはさまざまなバスケットに分割されています。いくつかのコントロールはSystem.Windows.Controls名前空間に属し、その他はPanelや他のものに属します。 PanelまたはControlタイプとしてコントロールを取得したいので、Backgroundプロパティを変更できます。次のコードは動作しません。WPFのバックグラウンドプロパティの問題

var element = ((sender as Panel) ?? (sender as Control)); 

答えて

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

コンパイラはあなたが提供した式からelementの種類を推測することができません。