WPF控件集类型为依赖属性

时间:2013-03-22 07:55:56

标签: wpf

有一些代码:

<DataTemplate>
     <StackPanel Orientation="Horizontal">
          <Rectangle Fill="Blue"></Rectangle>
          <TextBlock Text="test"></TextBlock>
     </StackPanel>
</DataTemplate>

我希望能够设置任何类型的形状,例如椭圆形,而不是矩形。

想要类似的东西:

<DataTemplate>
     <StackPanel Orientation="Horizontal">
          <Shape Fill="Blue" ShapeType={Binding DefaultShapeType}></Shape>
          <TextBlock Text="test"></TextBlock>
     </StackPanel>
</DataTemplate>

1 个答案:

答案 0 :(得分:1)

您通常会使用Path并通过视图模型属性为其Geometry属性提供Data

<DataTemplate>
    <StackPanel Orientation="Horizontal">
        <Path Fill="Blue" Data="{Binding SomeGeometry}" />
        <TextBlock Text="test" />
    </StackPanel>
</DataTemplate>

有一些基本的几何图形,如LineGeometry,RectangleGeometry和EllipseGeometry,以及StreamGeometry或PathGeometry等复杂的几何图形,可以绘制几乎任何形状。

Ellipse或Rectangle等专用Shapes也使用这些Geometries来定义它们的视觉外观。