2016-03-22 26 views
2

私は次のような問題があります。2つのコントロールを重ね合わせて、1つの境界線を囲むようにします。私は各コントロール上の境界線のZIndexを制御し、それらに低いZIndexを与えることができると考えました:2.コントロールにもっと高いZIndex(4と5)を与えます。次のXAMLのUserControlは、私が参照してるものですよう:WPF Border ZIndexが期待通りに機能しない

<Canvas> 
    <Border BorderBrush="Black" BorderThickness="4" Canvas.ZIndex="2" Canvas.Left="50" Canvas.Top="30"> 
     <Rectangle Width="200" Height="20" Fill="Aqua" Canvas.ZIndex="5"/> 
    </Border> 
    <Border BorderBrush="Black" BorderThickness="4" Canvas.ZIndex="2" Canvas.Left="150" Canvas.Top="00"> 
     <Rectangle Width="50" Height="200" Fill="Yellow" Canvas.ZIndex="5"/> 
    </Border> 
</Canvas> 

結果は以下のようになります。

enter image description here

しかし、私は、次の画像であるが、赤-Xとの国境を望みます削除:

enter image description here

誰もがこれを行う方法をお勧めしますか? Border ZIndexメソッドが機能していません。

ありがとうございます!

答えて

2

ZIndexが動作しない原因Rectanglesは、Canvasの子ではありません。したがって、境界線の外側に配置し、HeightsWidthsCanvas.LeftCanvas.Topのプロパティを調整することで修正できます。したがって、この例は次のようになります。

<Canvas> 
    <Border BorderBrush="Black" BorderThickness="4" Canvas.ZIndex="2" 
      Canvas.Left="46" Canvas.Top="26" 
      Width="208" Height="28"> 
    </Border> 
    <Rectangle Width="200" Height="20" Fill="Aqua" Canvas.ZIndex="5" 
       Canvas.Left="50" Canvas.Top="30" /> 
    <Border BorderBrush="Black" Height="208" Width="58" BorderThickness="4" 
      Canvas.ZIndex="2" Canvas.Left="146" Canvas.Top="00"> 
    </Border> 
    <Rectangle Canvas.Left="150" Canvas.Top="4" Width="50" Height="200" Fill="Yellow" 
       Canvas.ZIndex="5"/> 
</Canvas> 
+0

問題を修正しました - ありがとう! – Taterhead

関連する問題