有一些代码:
<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>
答案 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来定义它们的视觉外观。