如何直观地表示对象?

时间:2011-12-28 08:52:00

标签: wpf

我想知道如何在WPF中直观地表示对象?例如,我有一个类具有作为字段/属性的形状,当我将其添加到面板时,我想用它来表示对象,例如画布。我知道我可以从Shape继承并覆盖定义的几何属性,但我想知道是否还有其他方法?

2 个答案:

答案 0 :(得分:1)

有多种方法可以做到这一点......

  1. 如果你的元素没有呈现任何东西,只是坐在可视化树中(出于某些原因),那么要在可视树中托管它,你必须从Visual类继承它。不要忘记在继承时将Visual类中的所有虚拟方法覆盖到您的利益。

  2. 如果需要在UI上呈现(我猜是你的要求),那么它必须从UIElement类继承。在这里,您可以通过覆盖名为UIElement的{​​{1}}类的虚方法来呈现它。此方法接收OnRender()参数,可以根据需要绘制形状。 DrawingContext通常会这样工作。

  3. 如果您需要AdornerStyleDataContext等属性,则可能需要继承Tag

  4. 如果您希望可视对象在其中包含另一个FrameworkElement对象,则它可以从Visual继承。

答案 1 :(得分:0)

您可以使用DataTemplate来表示您的数据对象:

<DataTemplate DataType="{x:Type local:yourObject}">
    ... your visuals
</DataTemplate>