首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF OnRender Z-Order控件

WPF OnRender Z-Order控件
EN

Stack Overflow用户
提问于 2011-09-08 07:01:33
回答 1查看 1.6K关注 0票数 3

我有一个自定义面板,它实现了一个很好的子面板的自定义布局。我想要添加一些额外的图形到面板上,因此覆盖OnRender来添加额外的矩形等。它工作得很好,除了OnRender似乎只是添加到背景。有没有办法让你的OnRender图画放在孩子们的上面?

示例面板...

代码语言:javascript
复制
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以这种方式...

代码语言:javascript
复制
<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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-08 07:08:49

我将使您的"RenderPanel“继承自canvas,然后将其放在WrapPanel之上,并根据需要指定ZIndex。像这样的东西应该是有效的:

代码语言:javascript
复制
<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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7341450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档