2017-08-31 172 views
0

我需要能夠根據ContentControl內的子控件設置父項ContentControl的Z索引。WPF ContentControl將ZIndex設置爲子ZIndex

這裏是我的小例子:

<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> 

在這個例子中,Panel.ZIndex在RedRectangle宣稱沒有任何效果。

我想到了兩個選項:

  • 有家長結合孩子的Panel.ZIndex
  • 讓孩子設置其父Panel.ZIndex

我想不出瞭解如何做這兩種選擇。

最終我的孩子控制在一個被使用ContentControl施加DataTemplate定義,這意味着我不能直接設置的ContentControl

回答

1

Panel.ZIndex屬性試試這個:

<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> 
+0

我搞砸了和需要將其用於「ContentPresenter」而不是「ContentControl」。您儘管回答了我的原始問題:)(如果您知道ContentPresenter的簡單方法,可隨時添加評論) – ManIkWeet

+0

ContentPresenter是另一回事。它沒有內容屬性。但如果您有其他問題,請提出一個新問題。 – mm8