【问题标题】:WPF: How to set offset to PolyLineWPF:如何设置折线的偏移量
【发布时间】:2010-10-18 07:08:42
【问题描述】:

我有 3 条具有相同几何形状的折线。

我想为其中两个设置偏移量,这样它们就会彼此相邻。

我该怎么做?

谢谢。

【问题讨论】:

  • 您应该说明您的折线设置在哪个容器中。一般来说,我会使用 RenderTransform。

标签: c# wpf .net-3.5 offset polyline


【解决方案1】:

这取决于您使用的容器。如果您使用网格(没有行或列)或画布,它们直接在彼此之上。您可以通过边距(网格)或左/上(画布)将它们分开。

或者使用不同的面板,例如 Stackpanel,自动将它们排列在一起。

编辑: 在 cmets 中,我们提出了使用 LinearGradientBrush 为单个几何图形着色的想法,如下所示:

<Polyline StrokeThickness="20" Points="30,250 200,250">
    <Polyline.Stroke> 
        <LinearGradientBrush StartPoint="30,200" EndPoint="30,250" MappingMode="Absolute"> 
            <GradientStop Color="Red" Offset="1" /> 
            <GradientStop Color="Red" Offset="0.66" /> 
            <GradientStop Color="Yellow" Offset="0.66" /> 
            <GradientStop Color="Yellow" Offset="0.33" /> 
            <GradientStop Color="Green" Offset="0.33" /> 
            <GradientStop Color="Green" Offset="0" /> 
        </LinearGradientBrush> 
   </Polyline.Stroke> 

【讨论】:

  • 我已经尝试过了,但是看到我的问题的图像 (shrani.si/f/2A/13v/LJSLWsW/test.png) ...
  • @no9:我不知道它应该是什么样子。 =) 如果您希望它们形成相同的几何形状,但更厚和条纹,我认为您不能对所有三个条纹使用相同的几何形状。
  • 真的没有办法用偏移量绘制折线吗?
  • 我正在做的是绘制地图。例如......我有几条具有相同几何形状的折线(实际上它们是同一轴中的电缆)。所以我需要将它们彼此相邻绘制(彩虹风格)。有什么建议(除了为它们使用不同的样式,如厚度和不透明度)我可以如何抵消它们?我不是想用他们的容器来抵消线条,而是抵消绘图本身(钢笔?)......我说得有道理......
  • 也许是个主意...忘记有两条折线...我可以用某种样式绘制 1 条折线(例如在画线时手拿两支不同颜色的笔)
【解决方案2】:

我想我理解您的确切需求:您希望像在路线图上一样绘制折线,其中多条线遵循相同的路径,但它们之间始终保持相同的距离。

这是一个复杂得多的问题。 Key Johnson 有一篇很棒的文章,他在其中创建了几何视觉画笔:Stacked Geometry Brush Factory

他设法做的一个例子:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    相关资源
    最近更新 更多