2013-02-02 44 views
1

我需要在WPF圖像上顯示多個標記。標記可以是線條,圓形,正方形等,可以有幾百個。在WPF圖像上高效顯示多個標記

圖像源和標記數據每隔幾秒更新一次。標記與圖像上的特定像素相關聯,並且它們的大小應該相對於屏幕是絕對的(即,當我移動圖像時,標記應該隨之移動,但是如果我放大,它們應該採用與圖像相同的空間屏幕如前)。

目前,我已經使用AdornerLayer實現了這一點。這個解決方案有幾個問題,但最重要的是,即使對於120個這樣的標記,UI在負載下也不會很好。

我想問一下怎樣才能實現這個目標?我認爲兩種解決方案:

  • 繼承Canvas並確保它不被無效,每 添加標記,但在一次

  • 一系列標記創建一個保存的圖像和變化的控制其OnDraw繪製的所有標記

我會從別人有類似的問題的經驗體會一些指點。

回答

0

你的使用案例看起來很專業,所以專門的解決方案似乎有序。我會嘗試第二個選項的變體 - 擴展Image,覆蓋其OnRender方法。

+0

我結束了從圖像繼承。添加了一個標記列表,用於定義如何渲染自己並在圖像的OnRender中調用所有這些渲染函數。現在支持數百個標記。 – Dina