代码之家  ›  专栏  ›  技术社区  ›  Sebastian Gray

为什么System.Windows.Shape.Path是密封的?

  •  0
  • Sebastian Gray  · 技术社区  · 16 年前

    我试图扩展shape类以包含一个附加变量,但发现该类是密封的。如何简单地使用替代实现方法来实现这一点?

    创建一个新类并存储一个形状,通过最简单的方法传递所有方法调用;我相信还有更好的办法?

    2 回复  |  直到 16 年前
        1
  •  1
  •   Martin Liversage    16 年前

    . 我不知道你想做什么,但也许你可以用这个概念来解决你的问题。举例来说 Grid.Row Grid.Column 属性是附着到图元内部的属性 Grid

    <Grid>
      ...
      <TextBlock Grid.Row="1" Grid.Column="2" ... />
    </Grid>
    

    这个 TextBlock 类不知道 用户使用的属性 网格

    你可以阅读更多关于 attached properties on MSDN .

        2
  •  2
  •   RekrowYnapmoc    16 年前

    如果要添加的变量是您只能从中读取的变量,并且是作为Path类的其他成员的结果计算的,则可以添加一个将返回值的扩展方法。

    考虑创建一个继承路径的父形状的类,该类未被密封。 然后将专用路径成员添加到此。您可以免费获取所有shape方法调用,只需为Path的唯一成员提供包装。