-1

有一些代码:

<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>
4

1 回答 1

1

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

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

有一些基本的几何图形,如 LineGeometry、RectangleGeometry 和 EllipseGeometry,还有一些复杂的几何图形,如 StreamGeometry 或 PathGeometry,可以让您绘制几乎任何类型的形状。

椭圆或矩形等特殊形状也使用这些几何图形来定义它们的视觉外观。

于 2013-03-22T09:33:00.337 回答