WPF: как установить смещение в PolyLine - PullRequest
1 голос
/ 18 октября 2010

У меня есть 3 PolyLines, которые имеют одинаковую геометрию.

Я хотел бы установить смещение для двух из них, чтобы они отображались рядом друг с другом.

Как я могу это сделать?

спасибо.

Ответы [ 3 ]

1 голос
/ 18 октября 2010

Мне кажется, я понял вашу точную потребность: вы хотите рисовать полилинии, как на дорожной карте, где несколько линий следуют по одному и тому же пути, но всегда сохраняют одинаковое расстояние между ними.

Это гораздо более сложная проблема. Ки Джонсон написал отличную статью, в которой он создает геометрические визуальные кисти: Фабрика кистей с геометрической структурой .

Пример того, что ему удается сделать: alt text

1 голос
/ 18 октября 2010

Это зависит от контейнера, который вы используете.Если вы используете Grid (без строк или столбцов) или Canvas, они находятся прямо друг над другом.Вы можете разделить их друг от друга с помощью Margin (сетка) или Left / Top (canvas).

Или использовать другую панель, например Stackpanel, которая автоматически размещает их рядом друг с другом.

Редактировать: В комментариях мы разработали идею использования 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> 

0 голосов
/ 18 октября 2010

Вы должны объяснить, в каком контейнере установлены ваши полилинии. В общем, я бы использовал RenderTransform.

...