我想知道如何在WPF中直觀地表示一個對象?例如,我有一個類,其形狀爲一個字段/屬性,當我將其添加到面板時,我想將其表示爲對象,例如畫布。我知道我可以繼承Shape並覆蓋定義的幾何屬性,但我想知道是否還有其他方法?如何可視化地表示對象?
0
A
回答
1
有多種方式做到這一點...
如果你的元素不會呈現任何東西,只是在視覺樹坐(對於一些peculier原因),然後主辦它在視覺樹您將不得不從
Visual
類繼承它。當你繼承時,不要忘記覆蓋Visual
類的所有虛擬方法,以使你受益。如果需要在UI上渲染(我猜是你的要求),那麼它必須繼承
UIElement
類。在這裏,您可以通過覆蓋名爲OnRender()
的UIElement
類的虛擬方法來渲染它。該方法接收一個參數DrawingContext
,可以根據需要繪製形狀。Adorner
通常這樣工作。如果您需要
Style
,DataContext
和Tag
等屬性,您可能需要繼承FrameworkElement
。如果你想讓你的視覺對象包含另一個
Visual
對象,那麼它可以繼承FrameworkContentElement
。
0
你可以使用一個DataTemplate
代表數據對象:
<DataTemplate DataType="{x:Type local:yourObject}">
... your visuals
</DataTemplate>
+0
我明白了。我認爲'DataTemplate'的唯一缺點是很難在代碼中創建,而不是在XAML中創建。 – mihajlv 2011-12-28 19:11:14
相關問題
- 1. 如何顯示沒有地理可視化的純色地圖?
- 2. JAVA可視化表示
- 3. ggplot2可視化地圖/顯示錯誤?
- 4. 如何可視化地圖? (圖片)
- 5. 如何輕鬆地可視化矩陣?
- 6. 如何很好地可視化WADLogsTable
- 7. 地圖可視化
- 8. VS中對象樹的可視化
- 9. 數據庫對象關係可視化
- 10. 可視化大對象堆碎片
- 11. kibana可視化和對象數組
- 12. 可視化Windsor城堡對象
- 13. 類/對象視圖中的本地化表
- 14. 如何可視化數據庫中對象之間的關係?
- 15. 如何可視化pyspark中的決策樹模型/對象?
- 16. 我應該如何實現「對象查看器/可視化器」?
- 17. 如何可視化長對話線程?
- 18. 最佳的方式來可視化地表示這種算法?
- 19. 更改谷歌可視化圖表對象
- 20. Rails如何本地化表單對象的屬性
- 21. 如何在WinForms應用程序中表示/可視化數據對
- 22. Python 3創建可視化表示
- 23. jquery可視化圖表沒有顯示
- 24. java/maven引用的可視化表示
- 25. 不顯示可視化圖表
- 26. Python中節點的可視化表示
- 27. 可視化表示X和Y值
- 28. 監視對象變化的Python對象
- 29. 有什麼我可以用來整潔地可視化Chrome中的JavaScript對象?
- 30. 如何可視化數字列表?
謝謝,很好的解釋。 onRender是我一直在尋找的。 'DataTemplate'雖然有相同的效果嗎? – mihajlv 2011-12-28 19:08:35