C# 在子控件后面放置装饰层

C# 在子控件后面放置装饰层,c#,.net,wpf,C#,.net,Wpf,我有一个画布,需要在其中绘制网格,但在子控件后面。我试图创建一个新的adroner并将其添加到画布中,但是这个装饰器显示在子控件上。我怎样才能让这个装饰者成为canvas孩子的幕后黑手?我不想在画布的OnRender函数中绘制这个网格 澄清:网格不是控件。它是画布上绘制的网格或网。创建该属性是为了使位置元素更容易。使用该属性设置元素在z平面上显示的顺序。装饰器只能位于顶部(它始终具有最高的zindex)。您需要研究解决潜在问题的另一种解决方案,一种方法是使用TileBrush作为画布背景,并将T

我有一个画布,需要在其中绘制网格,但在子控件后面。我试图创建一个新的adroner并将其添加到画布中,但是这个装饰器显示在子控件上。我怎样才能让这个装饰者成为canvas孩子的幕后黑手?我不想在画布的OnRender函数中绘制这个网格


澄清:网格不是控件。它是画布上绘制的网格或网。创建该属性是为了使位置元素更容易。

使用该属性设置元素在z平面上显示的顺序。

装饰器只能位于顶部(它始终具有最高的zindex)。您需要研究解决潜在问题的另一种解决方案,一种方法是使用
TileBrush
作为
画布背景,并将TileBrush设置为适当的网格模式

你确定我可以把zindex和Adorner一起使用吗?它不是控件否,普通ZIndex在装饰器上不起作用(有一种方法可以做到,但必须经过反射)。任何原因都不能将其添加到画布的父级(或只是将画布嵌套在画布中)?我曾考虑过创建一个带有网格的普通控件,并将其作为画布的子控件,z索引最小,大小与画布大小相同。但我想找到更好的方法,如果不重写OnRender,可能不是更好的方法。我可能只会嵌套两个画布,然后将装饰器应用到外部画布上,这是一个简单的解决方案-好吧,你会得到一个稍微混乱的XAML,但这是一个小代价。谢谢你的建议,但我认为它不会起作用。因为我们会遇到同样的问题。问题是我无法覆盖OnRender,因为调用它时,我没有所有初始化数据。因此,我认为我需要创建一个带有网格的底层控件,并将其放在其他控件后面的画布上。。。谢谢你的回答。我的解决方案完全相同。我找到的最轻松的方式