我有一个自定义面板,它实现了一个很好的子面板的自定义布局。我想要添加一些额外的图形到面板上,因此覆盖OnRender来添加额外的矩形等。它工作得很好,除了OnRender似乎只是添加到背景。有没有办法让你的OnRender图画放在孩子们的上面?
示例面板...
public class RenderPanel : WrapPanel
{
protected override void OnRender(DrawingContext drawingContext)
{
base.OnRender(drawingContext);
drawingContext.DrawRectangle(Brushes.Red,
new Pen(Brushes.Black, 2),
new Rect(0, 0, 100, 100));
}
}...used以这种方式...
<Grid>
<my:RenderPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Button Margin="10" Content="Hello"/>
<Button Margin="10" Content="Hello"/>
<Button Margin="10" Content="Hello"/>
<Button Margin="10" Content="Hello"/>
</my:RenderPanel>
</Grid>发布于 2011-09-08 07:08:49
我将使您的"RenderPanel“继承自canvas,然后将其放在WrapPanel之上,并根据需要指定ZIndex。像这样的东西应该是有效的:
<Grid>
<WrapPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Canvas.ZIndex="0">
<Button Margin="10" Content="Hello"/>
<Button Margin="10" Content="Hello"/>
<Button Margin="10" Content="Hello"/>
<Button Margin="10" Content="Hello"/>
</WrapPanel>
<my:RenderPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Canvas.ZIndex="1" />
</Grid>https://stackoverflow.com/questions/7341450
复制相似问题