我想知道如何在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. JAVA可视化表示
- 2. 如何可视化地图? (图片)
- 3. 地图可视化
- 4. VS中对象树的可视化
- 5. 如何可视化pyspark中的决策树模型/对象?
- 6. 我应该如何实现“对象查看器/可视化器”?
- 7. 如何在WinForms应用程序中表示/可视化数据对
- 8. 可视化表示X和Y值
- 9. Python 3创建可视化表示
- 10. Python中节点的可视化表示
- 11. 监视对象变化的Python对象
- 12. 有什么我可以用来整洁地可视化Chrome中的JavaScript对象?
- 13. 如何可视化数字列表?
- 14. 列表可视化
- 15. 如何本地化可视化页面上的selectOptions
- 16. 如何创建我的数据的地铁地图可视化
- 17. 将由xml表示的图转换为可视化表示
- 18. 可视化谷歌地图/可视化的大量数据
- 19. 可视化显示Kibana
- 20. 在V8内部如何表示对象?
- 21. 如何从数组中表示对象?
- 22. 如何显示shell对象列表?
- 23. 如何表示一组对象
- 24. 如何动态地对3d对象进行着色/纹理化?
- 25. 如何可视化Erlang gen_fsm
- 26. 如何可视化Sklearn GradientBoostingClassifier?
- 27. 如何可视化声音?
- 28. PYSPARK:如何可视化GraphFrame?
- 29. 如何可视化NodeJS .cpuprofile
- 30. 如何从父数组视图显示子对象视图
谢谢,很好的解释。 onRender是我一直在寻找的。 'DataTemplate'虽然有相同的效果吗? – mihajlv 2011-12-28 19:08:35