我正在創建一個WPF應用程序,該應用程序將顯示城市規模水管理系統的2D矢量圖形。我已經從數百頁閥門,泵,處理設施等的示意圖和連接它們的管道獲取了數據。將其與個別住宅和商業地產的地圖信息結合起來,該數據集包含大約100,000個節點實例以及相互連接的管道信息。我有一個概念驗證應用程序,它爲每個管段或節點(節點非常簡單;矩形,圓等)創建一個DrawingVisual,創建一個DrawingContext,呈現管道的線段或節點的圖形表示。 DrawingVisuals被添加到畫布。每個視覺效果都是可以測試的(我需要能夠點擊其中的任何一個來獲得更詳細的信息)。問題是,隨着視覺效果數量超過幾千,性能(平移,縮放)會降低(儘管如此,真的很酷!)。我試圖擺弄反走樣&位圖緩存,但它沒有太大的幫助。使用繪圖視圖在WPF中顯示2D原理圖
這是WPF中可能的事情嗎?有更好的方法嗎?我來自MFC背景,僅在6-8個月前纔開始使用WPF,儘管我擁有相當多的C#經驗。從閱讀這裏的帖子,我看到Direct3D經常被提及,但它並沒有真正符合平面,2D,線條圖的法案,還是我錯了?我見過的XNF教程只處理精靈,這似乎不太合適?我已閱讀與業務圖相關的帖子;在這些情況下,下采樣數據似乎是合適的,但我不確定我能做到這一點,因爲每個節點的互連管道都是相關的。用戶需要合理快速縮放&平移到原理圖中的任何點。我認爲OpenGL可能是一件好事,但我真的很喜歡WPF的所有功能(命中測試,優秀幾何類等)
有什麼建議嗎?
謝謝!