Wpf 如何直观地表示对象?
我想知道如何在WPF中直观地表示对象?例如,我有一个类,它的一个形状作为一个文件/属性,当我将对象添加到面板时,我想用它来表示对象,例如画布。我知道我可以继承形状并覆盖定义几何体属性,但我想知道是否还有其他方法?有多种方法可以做到这一点Wpf 如何直观地表示对象?,wpf,Wpf,我想知道如何在WPF中直观地表示对象?例如,我有一个类,它的一个形状作为一个文件/属性,当我将对象添加到面板时,我想用它来表示对象,例如画布。我知道我可以继承形状并覆盖定义几何体属性,但我想知道是否还有其他方法?有多种方法可以做到这一点 如果您的元素没有呈现任何内容,只是位于可视化树中(出于某种特殊原因),那么要在可视化树中承载它,您必须从visual类继承它。继承时,不要忘记覆盖Visual类中的所有虚拟方法 如果它需要在UI上呈现(我想这是您的需求),那么它必须从UIElement类继承。在
visual
类继承它。继承时,不要忘记覆盖Visual
类中的所有虚拟方法UIElement
类继承。在这里,您可以通过重写名为OnRender()
的UIElement
类的虚拟方法来渲染它。此方法接收一个DrawingContext
参数,该参数可以根据需要绘制形状<代码>装饰器通常是这样工作的Style
、DataContext
和Tag
等属性,则可能必须从FrameworkElement
继承visual
对象,则它可以从FrameworkContentElement
继承您可以使用
DataTemplate
来表示数据对象:
<DataTemplate DataType="{x:Type local:yourObject}">
... your visuals
</DataTemplate>
... 你的视觉效果
谢谢,解释得很好。onRender就是我要找的。DataTemplate
是否具有相同的效果?我明白了。我认为DataTemplate
的唯一缺点是很难在代码中创建,而不是在XAML中创建。