我想知道如何在WPF中直观地表示对象?例如,我有一个类具有作为字段/属性的形状,当我将其添加到面板时,我想用它来表示对象,例如画布。我知道我可以从Shape继承并覆盖定义的几何属性,但我想知道是否还有其他方法?
答案 0 :(得分:1)
有多种方法可以做到这一点......
如果你的元素没有呈现任何东西,只是坐在可视化树中(出于某些原因),那么要在可视树中托管它,你必须从Visual
类继承它。不要忘记在继承时将Visual
类中的所有虚拟方法覆盖到您的利益。
如果需要在UI上呈现(我猜是你的要求),那么它必须从UIElement
类继承。在这里,您可以通过覆盖名为UIElement
的{{1}}类的虚方法来呈现它。此方法接收OnRender()
参数,可以根据需要绘制形状。 DrawingContext
通常会这样工作。
如果您需要Adorner
,Style
和DataContext
等属性,则可能需要继承Tag
。
如果您希望可视对象在其中包含另一个FrameworkElement
对象,则它可以从Visual
继承。
答案 1 :(得分:0)
您可以使用DataTemplate
来表示您的数据对象:
<DataTemplate DataType="{x:Type local:yourObject}">
... your visuals
</DataTemplate>