叠加两个控件

5

我开始在WPF上做一些东西,但是我有一个问题。我认为答案可能很简单甚至显而易见,但是不知何故...

我在一个网格中放置了两个控件。我想把第二个控件放在第一个控件的上方(它是透明的)。从WinForms开发来看,这并不难,但在WPF中就不一样了。但我不明白关键点在哪里...

Sascha

2个回答

18

无论是Grid还是Canvas控件都可以实现你想要的效果。

对于大部分情况,我建议使用Grid叠加元素,因为你可以轻松控制它们的大小调整。它们将按照你定义的顺序堆叠(最后一个定义在顶部)。

试试这样做:

<Grid>
    <Rectangle Fill="Blue"/>
    <Ellipse Fill="Red"/>
</Grid>

顺便提一下 - 在像Kaxaml这样的交互式工具中学习XAML要容易得多。


这对于矩形和椭圆都很有效。要叠加的控件将是WebBrowser控件。为此,我用WebBrowser替换了Rectangle,结果椭圆不再显示了。 - Sascha
在运行浏览器的情况下获得它。 - Sascha
很高兴它对你有用。我认真建议尝试使用Kaxaml来了解WPF的各个方面。 - Drew Noakes

6

如果我理解正确,只需在网格中将控件的顺序颠倒即可。顺序决定了控件的Z-Index。

  <Grid>
    <c:ControlFirst/>
    <c:ControlSecond/>        
  </Grid>

正是我所需要的, 最后一个控件将位于所有其他控件之上。谢谢你提供这个信息! - Chandraprakash

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接