使DataTemplate的子项继承父项的颜色

本文关键字:颜色 继承 DataTemplate | 更新日期: 2023-09-27 18:00:23

我有一个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时将TextBox的前景更改为白色。

有什么线索可以告诉我如何获得这个吗?

使DataTemplate的子项继承父项的颜色

如果您不想在添加的控件之外的其他控件上乱搞,请将它们的背景色设置为透明。

哈奇,但会工作。

假设您的问题是:

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

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

b.)每次选择ListView 时,将文本框的前景更改为白色

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

如果父控件的背景色发生更改,您还可以使用绑定来显式告诉文本框使用绑定中的ElementName来绑定包含控件。