绑定祖先的属性
你可以使用 RelativeSource
绑定绑定到可视树中的祖先属性。可视树中具有相同类型或从你指定的类型派生的最近控件将用作绑定的源:
<Grid Background="Blue">
<Grid Background="Gray" Margin="10">
<Border Background="Red" Margin="20">
<StackPanel Background="White" Margin="20">
<Button Margin="10" Content="Button1" Background="{Binding Background, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Grid}}}" />
<Button Margin="10" Content="Button2" Background="{Binding Background, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type FrameworkElement}}}" />
</StackPanel>
</Border>
</Grid>
</Grid>
在此示例中, Button1 具有灰色背景,因为最接近的 Grid
祖先具有灰色背景。 Button2 具有白色背景,因为从 FrameworkElement
派生的最近的祖先是白色 StackPanel
。