我无法理解何时调用 OnRender 方法。考虑我的示例:我有一个派生自 FrameworkElement 的类 SomeElement,它覆盖了 OnRender 方法。假设我有一个Grid grid
. 我期望的是
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
属性,还是?