WPF-相同的弧段由2种不同的颜色组成

时间:2012-12-19 17:52:48

标签: c# wpf

要求:我必须使用电压表用户控制。

以下代码绘制弧,包括电压表刻度和值。

    <Path Name="Pth" Stroke="DarkGray"  StrokeThickness="2" Width="Auto"  Height="48" Canvas.Top="12">
        <Path.Data>
            <PathGeometry >
                <PathFigure   StartPoint="35,28">
                    <ArcSegment   IsLargeArc="False"
                            Size="23,75"
                            Point="200,28"
                            SweepDirection="Clockwise"
                                RotationAngle="90"/>
                </PathFigure>
            </PathGeometry>
        </Path.Data>

如上所述,使用的笔是笔画=深灰色。我不是在谈论Fill property。

但是,弧的一部分必须以蓝色(作为警报值)呈现,以响应用户指定的范围。弧的任何部分。

大图是弧形的主要部分由灰色笔呈现,报警部分为蓝色。

上面可以看到的问题是,我们只能将笔分配给Path(不是arcsegment或几何或路径图),路径一次只能使用一支笔。

渐变画笔在颜色混合时不起作用。在这里,弧的两个部分必须通过颜色明显区分。

如果我使用两条路径将弧分成2个分段,我必须考虑各种现有的计算,这取决于路径几何的分数值。

对我来说,最好的方法是什么?有什么建议吗?

1 个答案:

答案 0 :(得分:1)

取自here

一个想法可能是使用渐变画笔,颜色块之间没有间距。

例如:

<Rectangle Width="200" Height="50">
    <Rectangle.Fill>
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="Red" Offset="0.500"/>
            <GradientStop Color="Lime" Offset="0.500"/>
        </LinearGradientBrush>
    </Rectangle.Fill>
</Rectangle>

会产生如下内容:

虽然我担心你可能无法找到正确的偏移量,但是应该动态计算。

编辑:你能告诉我们弧线看起来会是什么样的吗?