WPF ContentControl将ZIndex设置为子ZIndex

时间:2017-08-31 11:16:22

标签: c# wpf xaml

我需要能够根据ContentControl内的子控件设置父级ContentControl的Z-Index。

这是我的小例子:

<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Grid>  
    <Rectangle Fill="Green" Width="100" Height="100" Panel.ZIndex="5"/>
    <ContentControl>
      <Rectangle Fill="Red" Width="100" Height="100" Panel.ZIndex="10" />
    </ContentControl>
  </Grid>
</Page>

在此示例中,Red Rectangle中声明的Panel.ZIndex无效。

我想到了两个选择:

  • 让父母绑定到孩子的Panel.ZIndex
  • 让孩子在其父级
  • 上设置Panel.ZIndex

我无法弄清楚如何做这两个选项中的任何一个。

最终我的子控件是在DataTemplate中定义的,使用ContentControl来应用,这意味着我无法直接设置Panel.ZIndex的{​​{1}}属性

1 个答案:

答案 0 :(得分:2)

试试这个:

<Grid>
    <Rectangle Fill="Green" Width="100" Height="100" Panel.ZIndex="5"/>
    <ContentControl Panel.ZIndex="{Binding Content.(Panel.ZIndex), RelativeSource={RelativeSource Self}}">
        <Rectangle Fill="Red" Width="100" Height="100" Panel.ZIndex="10" />
    </ContentControl>
</Grid>