如何在WPF中创建自定义形状?例如,我试图在一个cavas上绘制彼此连接的多个符号。我需要每个符号来改变颜色。我怎么创建让我们说一个可以改变颜色的自定义形状。假设我想将以下两种形状合二为一。我将如何封装它们
<Ellipse x:Name="theEllipse"
Height="89"
Width="82"
Fill="Black"
Canvas.Left="32"
Canvas.Top="75" />
<Ellipse x:Name="theEllipse"
Height="89"
Width="82"
Fill="Black"
Canvas.Left="32"
Canvas.Top="75" />
下面提供的解决方案可以使用省略号,但是, 它不适用于以下数字:
<Line X1="10"
Y1="50"
X2="50"
Y2="50"
Stroke="Black"
StrokeThickness="2" />
<Line X1="15"
Y1="55"
X2="45"
Y2="55"
Stroke="Black"
StrokeThickness="2" />
<Line X1="20"
Y1="60"
X2="40"
Y2="60"
Stroke="Black"
StrokeThickness="2" />
答案 0 :(得分:1)
你可以在Blend中完成。
更新2017-04-10
如果您希望此操作适用于所有形状和线条,则必须确保您的元素位于Canvas
内,而不是Grid
或StackPanel
。元素的父容器很重要。
因此,在3行的情况下,将它们包裹在Canvas
内并再次运行 Make Compound Path 操作。
<Canvas>
<Line X1="10"
Y1="50"
X2="50"
Y2="50"
Stroke="Black"
StrokeThickness="2" />
<Line X1="15"
Y1="55"
X2="45"
Y2="55"
Stroke="Black"
StrokeThickness="2" />
<Line X1="20"
Y1="60"
X2="40"
Y2="60"
Stroke="Black"
StrokeThickness="2" />
</Canvas>
以下是它的样子:
<Canvas>
<Path Data="M1,1 L41,1 M6.00001,6 L36,6 M11,11 L31,11"
Height="12"
Canvas.Left="9"
Stretch="Fill"
Stroke="Black"
StrokeThickness="2"
Canvas.Top="49"
UseLayoutRounding="False"
Width="42" />
</Canvas>