小编典典

如何使覆盖控件高于所有其他控件?

all

我需要让一个控件出现在所有其他控件之上,因此它将部分覆盖它们。


阅读 139

收藏
2022-07-28

共1个答案

小编典典

如果您在布局中使用Canvasor Grid,请将控件放在更高的ZIndex.

来自MSDN

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

2022-07-28