2011-06-23 4 views
1

TextBoxとCombosを含むListViewItemのDataTemplateがあります。このような何か:DataTemplateの子が親の色を継承するようにする

<DataTemplate x:Key="ListTemplate"> 
     <Border Margin="2, 2, 4, 2" BorderThickness="2, 0, 0, 0"> 
      <Grid> 
       (...) 
       <StackPanel Grid.Column="0" Grid.Row="0"> 
        <TextBox VerticalAlignment="Bottom" Name="hoursField" Margin="5"> 
         <TextBox.Text> 
          <Binding Path="Hours" /> 
         </TextBox.Text> 
        </TextBox> 
... 

さて、私はのStackPanelの同じ背景色で描画するためには、彼のコンテナの背景色を継承するテキストボックスを作成し、へのTextBoxの前景色を変更したいですListViewが選択されるたびに白です。

私はこれをどのように得ることができますか?

+0

自動的には行いませんか? – 26071986

答えて

0

と仮定すると、ご質問は以下の通りです。

)私は彼のコンテナの背景色を継承するテキストボックスを作りたいです。

回答:ListBoxItem ControlTemplateのルートグリッドの背景色を設定する必要があります。これは、ListBoxItem内に配置されたコンテンツプレゼンターによって継承されます。

b)は白にListViewコントロールが

回答を選択するたびにテキストボックスの前景色を変更します。ListBoxItemのControlTemplateであなた場合は選択した状態

0

に白で、ルートグリッドのフォアグラウンドを変更しますあなたが追加しようとしているコントロール以外のものを使いこなしたくない場合は、背景色を透明に設定してください。

ハッキーですが、動作します。

-1

親の背景色が変更された場合は、バインディング内のElementNameを使用して、コントロールをバインドするようにテキストボックスに明示的に指示することもできます。