我有一个自定义面板,实现了其子元素的漂亮自定义布局。我想向面板添加一些额外的图形,因此重写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));
}
}
...以这种方式使用...
<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>
OnRender
方法,而您已经承担了这个成本。 :) - Greg D