1

要求:我必须配备电压表用户控件。

以下代码绘制了一个弧线,由电压表刻度和值组成。

    <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 属性。

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

大图是弧线的主要部分用灰色笔渲染,报警部分是蓝色的。

正如上面所看到的问题,我们可以只将笔分配给路径(不是弧段或几何或路径图),并且路径一次只能使用一支笔。

渐变刷在此处无法工作,因为颜色混合在一起。此处弧的两个部分必须通过颜色彼此清晰区分。

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

我的情况最好的方法是什么?有什么建议吗?

4

1 回答 1

1

取自这里

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

例如:

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

会导致以下结果:

虽然我担心你可能很难找到正确的偏移量,以防它应该动态计算。

编辑:你能告诉我们弧线大概是什么样子吗?

于 2012-12-19T17:54:53.927 回答