2014-02-28 31 views
0

我有一个自定义UserControl旨在允许个人选择图像的区域。我想让这个控件作为一个装饰器,可以在子图像上绘制区域选择控件。WPF中的子控件绘制父控件

但是,将图像添加为XAML中UserControl的子项时,会将图像呈现在我的UserControl中的Canvas中的椭圆对象的控点的顶部。

如何强制UserControl的内容在其子级之上进行渲染?

回答

3

听起来就像你想创建一个装饰者。看一看MSDN adorners overview

但是你总是可以设置Canvas.ZIndex附属属性,以便事物在渲染顺序上移动得更高。

+0

谢谢!我会看看装饰者。至于你的第二个建议,我将如何去设置一个直接控制孩子的Z指数与实际上在控制内的元素? – user1227489

0

最简单的方法是使用装饰者。很简单。

装饰者基本上是UIElement顶部的一个额外的UI层。

一个很好的比喻是咖啡桌或餐桌上有一块厚厚的玻璃。

如果你不在玻璃上画画,你只能看到桌子。一旦你画在玻璃上,它就会显示在桌子上方。

如果你想摆脱你绘制的东西,你只需删除玻璃或清理它。

我这个案子的玻璃将是一个装饰者。