我在調用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