Вместо того, чтобы разбивать путь, это звучит так, как будто вы можете просто использовать линейную градиентную кисть для цвета штриха пути, чтобы добиться того же эффекта вашего замирания пути. Например, попробуйте установить кисть ниже на вашем пути.
В Xaml:
<Path.Stroke>
<LinearGradientBrush>
<GradientStop Color="#00000000" Offset="0.0"/>
<GradientStop Color="#FF000000" Offset="1.0"/>
</LinearGradientBrush>
</Path.Stroke>
В C#:
var brush = new LinearGradientBrush();
brush.GradientStops.Add(new GradientStop(new Color { A = 0, R = 0, B = 0, G = 0 }, 0.0));
brush.GradientStops.Add(new GradientStop(new Color { A = 255, R = 0, B = 0, G = 0 }, 1.0));
this._path.Stroke = brush;
Кроме того, для решения оригинальный вопрос, является ли или не выше, то, что вы ищете, у вас есть несколько варианты разделения пути. Поскольку вы знаете, что Data - это PathGeometry, состоящая из PathFigures, вы можете просто программно обращаться к сегментам и создавать больше объектов Path. Для макета, поскольку каждый из них - это новый UIElement, родитель которого должен его измерять и упорядочивать, вам нужно поместить все новые контуры в панель макета, которая будет держать их в том же относительном положении.
Я думаю, что есть несколько способов, которыми вы могли бы пойти по этому пути, но один из способов полностью позиционировать их обратно - просто выложить их на холст с помощью Canvas.Top и Canvas.Left (или .Right, .Bottom в зависимости от того, как вы их выкладываете), установите относительные смещения начала каждого сегмента в пути и отрегулируйте точки так, чтобы они были относительно нового верхнего левого угла нового Пути. Например, это
<Path Stroke="Black">
<Path.Data>
<PathGeometry>
<PathFigure>
<LineSegment Point="10,10"/>
<LineSegment Point="20,60"/>
<LineSegment Point="70,60"/>
</PathFigure>
</PathGeometry>
</Path.Data>
</Path>
может стать чем-то вроде
<Path Stroke="Black">
<Path.Data>
<PathGeometry>
<PathFigure>
<LineSegment Point="10,10"/>
</PathFigure>
</PathGeometry>
</Path.Data>
</Path>
<Path Stroke="Black" Canvas.Top="10" Canvas.Left="10">
<Path.Data>
<PathGeometry>
<PathFigure>
<LineSegment Point="10,50"/>
</PathFigure>
</PathGeometry>
</Path.Data>
</Path>
<Path Stroke="Black" Canvas.Top="60" Canvas.Left="20">
<Path.Data>
<PathGeometry>
<PathFigure>
<LineSegment Point="50,0"/>
</PathFigure>
</PathGeometry>
</Path.Data>
</Path>
Это должно быть ясно, как вы можете сделать это путем создания нескольких РАТНО с учетом PathGeometry объект из C#, а также, как это звучит, как вы можете не делайте этого в XAML с вашего вопроса. Дайте мне знать, если это не так, и я могу подробнее рассказать.
Очень близко к тому, что я хотел! Я действительно хотел, чтобы уметь исчезать путь, но этот класс имеет проблемы, когда значения градиента прозрачны. Ну, я немного поиграю и посмотрю, смогу ли я это исправить. Благодаря! – Dalal