繫結祖先的屬性
你可以使用 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
。