我可以在“画布”路径中更改特定线段的笔触颜色吗?

时间:2017-05-01 23:28:35

标签: c# wpf canvas

我可以在“画布”路径中更改特定线段的笔触颜色吗?

<Grid>
    <Canvas x:Name="c">
        <Path x:Name="path" Stroke="Black" StrokeThickness="1">
            <Path.Data>
                <PathGeometry>
                    <PathFigure x:Name="figure" StartPoint="10,100">
                        <LineSegment x:Name="s0" Point="10,100"></LineSegment>
                        <LineSegment x:Name="s1" Point="100,100" />
                        <LineSegment x:Name="s2" Point="100,50" />
                        <LineSegment x:Name="s3" Point="150,10" />
                    </PathFigure>
                </PathGeometry>
            </Path.Data>
        </Path>
    </Canvas>
</Grid>

例如,如果我想更改StartPoint和LineSegment s1之间的直线路径的描边颜色,我该怎么做?

2 个答案:

答案 0 :(得分:1)

每次更改颜色时,您都必须开始一条新路径。在S1之后停止路径,切换颜色,然后使用定义的新颜色开始新的路径图。

答案 1 :(得分:0)

您需要为每种颜色创建一个路径......正如您在建议中所说,要更改s0和s1之间的颜色必须是:

<Grid>
    <Canvas x:Name="c">
        <Path x:Name="path1" Stroke="Black" StrokeThickness="1">
            <Path.Data>
                <PathGeometry>
                    <PathFigure x:Name="figure" StartPoint="10,100">
                        <LineSegment x:Name="s0" Point="10,100"></LineSegment>
                    </PathFigure>
                </PathGeometry>
            </Path.Data>
        </Path>
        <Path x:Name="path2" Stroke="Yellow" StrokeThickness="1">
            <Path.Data>
                <PathGeometry>
                    <PathFigure x:Name="figure2" StartPoint="10,100">
                        <LineSegment x:Name="s1" Point="100,100" />
                        <LineSegment x:Name="s2" Point="100,50" />
                        <LineSegment x:Name="s3" Point="150,10" />
                    </PathFigure>
                </PathGeometry>
            </Path.Data>
        </Path>
    </Canvas> </Grid>