我需要让一个控件出现在所有其他控件之上,因此它将部分覆盖它们。
如果您在布局中使用Canvasor Grid,请将控件放在更高的ZIndex.
Canvas
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.
ChildWindow
RootVisual