Как обрезать Shapes по PathFigure?

274
28 мая 2017, 18:59

Здравствуйте! Не получается каким-либо образом обрезать Shapes элемент по контуру PathFigure. Подскажите пожалуйста, куда глубже копать.

Нашел только свойство Clip, но оно не применимо для моей задачи. На фото выделены линии, часть которых не должны отображаться. То есть это и есть постановка данного вопроса.

И конечно сам код:

<Path  Name="form" Fill="#FF2D7C7C" Opacity="1" Visibility="Visible" StrokeThickness="0.5" >
            <Path.Data>
                <PathGeometry> 
                    <PathFigure x:Name="forme"  StartPoint="205, 142.5">
                        <PolyQuadraticBezierSegment x:Name="form_gg" Points="231.5, 162.5  258, 142.5,
                                                    276, 140.5 284, 147.3,
                                                    285, 190.3 260, 248.3,
                                                    269, 248.3 203, 248.3
                                                    176, 190.3 179.4, 147.3,
                                                    187.4, 140.3, 205, 142.5" >
                        </PolyQuadraticBezierSegment>
                    </PathFigure>

                </PathGeometry>
            </Path.Data>
        </Path>
        <Polyline Stroke="Black" StrokeThickness="4"
                  Points="205, 145, 205, 255, 215, 145, 215, 255, 225, 145"></Polyline>

Конечно, спасибо огромное тому, кто откликнется.

Answer 1

Почему же неприменимо? Прекрасно применимо.

Вот такой XAML

<Path Name="form" Fill="#FF2D7C7C" Opacity="1" Visibility="Visible" StrokeThickness="0.5" >
    <Path.Data>
        <PathGeometry>
            <PathFigure x:Name="forme" StartPoint="205, 142.5">
                <PolyQuadraticBezierSegment x:Name="form_gg"
                                            Points="231.5, 162.5  258, 142.5,
                                                276, 140.5 284, 147.3,
                                                285, 190.3 260, 248.3,
                                                269, 248.3 203, 248.3
                                                176, 190.3 179.4, 147.3,
                                                187.4, 140.3, 205, 142.5" >
                </PolyQuadraticBezierSegment>
            </PathFigure>
        </PathGeometry>
    </Path.Data>
</Path>
<!-- добавил для иллюстрации разницы розовую подложку -->
<Polyline Stroke="Pink" StrokeThickness="4"
          Points="205, 145, 205, 255, 215, 145, 215, 255, 225, 145"/>
<Polyline Stroke="Black" StrokeThickness="4" Clip="{Binding Data, ElementName=form}"
          Points="205, 145, 205, 255, 215, 145, 215, 255, 225, 145"/>

производит следующий UI:

READ ALSO
Запуск приложения WinForm с параметрами из cmd

Запуск приложения WinForm с параметрами из cmd

Всем привет как узнать что приложение было запущено с определенным параметром из cmd? Есть определенный параметр "Show Version" и при запуске cmd > testexe...

387
Как показать невидимое окно?

Как показать невидимое окно?

У меня есть окно, которое выполняет какой-то процесс с визуализациейИ мне надо чтобы при запуске приложение оно работало, но не показывалось...

319