我在WPF中拥有用户控制权。有一个网格,它有两个孩子。一张画布和一个内容控件。我希望此透明画布位于内容控件之上,但仍位于其后面。
<Grid x:Name="g1" Margin="0" Background="Black">
<ContentControl x:Name="cc1" Panel.ZIndex="100" Content="{Binding Content}"/>
<Canvas x:Name="c1" Panel.ZIndex="500">
<Label Canvas.Top="10" Canvas.Left="10" Content="Text 1" Foreground="White" />
<Label Canvas.Top="10" Canvas.Right="10" Content="Text 2" Foreground="White" />
<Label Canvas.Bottom="10" Canvas.Left="10" Content="Text 3" Foreground="White" />
<Label Canvas.Bottom="10" Canvas.Right="10" Content="Text 4" Foreground="White" />
</Canvas>
</Grid>
我在这里想念什么?
答案 0 :(得分:0)
您可以
或
ZIndex
属性-值越高,控件将越“向前”显示。答案 1 :(得分:0)
在任何面板中,元素从第一个声明的元素开始一直显示在后面。
因此,您只需在以下位置声明Canvas:
<Grid x:Name="g1" Margin="0" Background="Black">
<ContentControl x:Name="cc1" Content="{Binding Content}"/>
<Canvas x:Name="c1">
<Label Canvas.Top="10" Canvas.Left="10" Content="Text 1" Foreground="White" />
<Label Canvas.Top="10" Canvas.Right="10" Content="Text 2" Foreground="White" />
<Label Canvas.Bottom="10" Canvas.Left="10" Content="Text 3" Foreground="White" />
<Label Canvas.Bottom="10" Canvas.Right="10" Content="Text 4" Foreground="White" />
</Canvas>
</Grid>
或者,将Canvas Panel.ZIndex属性设置为1或更高。
<Canvas x:Name="c1" Panel.ZIndex="1">
...
答案 2 :(得分:0)
尝试这样:
<Grid x:Name="g1" Margin="0" Background="Black">
<ContentControl x:Name="cc1" Content="{Binding Content}" Background="White"/>
<Canvas x:Name="c1" Background="Red">
<Label Canvas.Top="10" Canvas.Left="10" Content="Text 1" Foreground="White" />
<Label Canvas.Top="10" Canvas.Right="10" Content="Text 2" Foreground="White" />
<Label Canvas.Bottom="10" Canvas.Left="10" Content="Text 3" Foreground="White" />
<Label Canvas.Bottom="10" Canvas.Right="10" Content="Text 4" Foreground="White" />
</Canvas>
</Grid>
我添加了两种颜色,ContentControl
用白色,Canvas
用红色供您识别。
您是否可以看到,在此示例中,您只能看到红色,这意味着Canvas
在ContentControl
上方。