我在调用OnRender方法时遇到了麻烦。 考虑我的例子: 我有一个派生自FrameworkElement的SomeElement类,它覆盖了OnRender方法。 假设我有一个Grid grid
。我期望的是,WPF - 可视化树不用于绘图?
var someElement = new SomeElement();
grid.AddVisualChild(someElement);
someElement.InvalidateVisual();
会导致SomeElement.OnRender方法被触发。它没有在我的情况,但下列情况:
var someElement = new SomeElement();
grid.Children.Add(new SomeElement());
someElement.InvalidateVisual();
所以我的问题是,为什么当它单独添加到可视化树someElement
不绘制。将其添加到房产Children
的重要性如何? 更一般地说,OnRender怎么叫?通过视觉树,或Children
属性,或?
你想做什么?重写'OnRender()'并不是你经常在WPF中执行的事情。 –
尽管在网格实例上很难调用受保护的AddVisualChild方法。 – Clemens
@HighCore:我试图在网格上画几条线。我想我会把它们放在一个专门绘制这些线条的元素中。我是新来的WPF btw,因为你可能会注意到... – JBSnorro