オーバーレイコントロールを他のすべてのコントロールの上に表示するにはどうすればよいですか? 質問する

オーバーレイコントロールを他のすべてのコントロールの上に表示するにはどうすればよいですか? 質問する

コントロールを他のすべてのコントロールの上に表示して、部分的にオーバーレイする必要があります。

ベストアンサー1

Canvasレイアウトでまたは を使用している場合はGrid、上に配置するコントロールに高い を指定しますZIndex

からマイクロソフト:

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" WindowTitle="ZIndex Sample">
  <Canvas>
    <Rectangle Canvas.ZIndex="3" Width="100" Height="100" Canvas.Top="100" Canvas.Left="100" Fill="blue"/>
    <Rectangle Canvas.ZIndex="1" Width="100" Height="100" Canvas.Top="150" Canvas.Left="150" Fill="yellow"/>
    <Rectangle Canvas.ZIndex="2" Width="100" Height="100" Canvas.Top="200" Canvas.Left="200" Fill="green"/>

    <!-- Reverse the order to illustrate z-index property -->

    <Rectangle Canvas.ZIndex="1" Width="100" Height="100" Canvas.Top="300" Canvas.Left="200" Fill="green"/>
    <Rectangle Canvas.ZIndex="3" Width="100" Height="100" Canvas.Top="350" Canvas.Left="150" Fill="yellow"/>
    <Rectangle Canvas.ZIndex="2" Width="100" Height="100" Canvas.Top="400" Canvas.Left="100" Fill="blue"/>
  </Canvas>
</Page>

を指定しない場合はZIndex、パネルの子要素は指定された順序でレンダリングされます (つまり、最後の要素が一番上に表示されます)。

もっと複雑なことをしたい場合は、ChildWindowSilverlight で がどのように実装されているかを確認してください。 半透明の背景とポップアップが 全体にオーバーレイされますRootVisual

おすすめ記事