让DataTemplate的子级继承父级的颜色

时间:2011-06-23 06:51:14

标签: c# .net wpf xaml wpf-controls

我有一个ListViewItems的DataTemplate,里面有一些TextBoxes和Combos。像这样:

<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>
 ...

现在,我想让TextBox继承其容器的背景颜色,以便使用StackPanel的相同背景颜色进行绘制,并在每次选择ListView时将TextBoxes的Foreground更改为白色。

关于我如何获得这个的任何线索?

3 个答案:

答案 0 :(得分:0)

假设您的问题是:

a。)我想让TextBox继承其容器的背景颜色。

答案:您需要为ListBoxItem ControlTemplate设置根网格的背景颜色。这将由放置在ListBoxItem内的内容演示者继承。

b。)每次选择ListView时,将TextBoxes的前景更改为白色

答案:在ListBoxItem ControlTemplate中,将根网格的前景更改为选定状态下的白色

答案 1 :(得分:0)

如果您不想使用除添加的控件之外的其他任何内容,请将其背景颜色设置为透明。

Hacky,但会奏效。

答案 2 :(得分:-1)

如果父级的背景颜色发生变化,您还可以使用绑定来明确告诉文本框绑定包含控件,使用绑定中的ElementName。