为什么只有一些子元素将由其父元素定义其属性

时间:2010-02-21 10:37:46

标签: c# .net wpf datacontext

<Window x:Class="tests.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" Background="Red" Foreground="Cyan">
    <StackPanel VerticalAlignment="Center">
        <Button>123</Button>
        <TextBlock>123</TextBlock>
        <TextBox>123</TextBox>
    </StackPanel>
</Window>

在上面的代码中,只有TextBlock将“继承”前景色和背景色。 Button和TextBox不应该也有这些颜色吗?他们为什么不拥有它? alt text http://img707.imageshack.us/img707/8014/5uslgmbzkbyurgwuwgqtzv2.png

2 个答案:

答案 0 :(得分:1)

这是因为Button特别选择退出Background值继承,以便具有一致的外观。有关详细信息,请参阅en.csharp-online.net/WPF_Concepts—Property_Value_Inheritance

答案 1 :(得分:-1)

<Button background="{Binding ElementName=stackPanel1,Path=Background}" .../>