#c# #uwp #draw
#c# #uwp #рисовать
Вопрос:
В Wpf вы можете
<Path Stroke="White" Fill="#50ffffff" StrokeThickness="2">
<Path.Data>
<PathGeometry>
<PathFigure StartPoint="20,20">
<LineSegment Point="100,20" />
<LineSegment Point="100, 100" IsStroked="False"/>
<LineSegment Point="20, 100"/>
<LineSegment Point="20, 20"/>
</PathFigure>
</PathGeometry>
</Path.Data>
</Path>
Чтобы получить
К сожалению, в UWP нет IsStroked
свойства в LineSegment
классе, есть ли какой-либо известный обходной путь для этого случая?
Спасибо
Комментарии:
1. Разве этого нельзя было достичь простым удалением нужного сегмента? Пока есть только один пробел, и
IsClosed = false
это должно сработать (вам, конечно, придется изменить порядок строк).
Ответ №1:
Чтобы преодолеть это ограничение, вы должны быть в состоянии разбить Path
на несколько Paths
, пропуская области без обводки. В примере кода вы могли бы даже сохранить его как единый Path
, начав в правом верхнем углу и продолжая против часовой стрелки, заканчивая в правом нижнем углу.
В более сложных сценариях использование нескольких Paths
немного менее чисто, чем в WPF, но это должно быть функциональное решение.
Ответ №2:
Пока есть только один пробел, это тоже должно работать:
<Path Stroke="White" Fill="#50ffffff" StrokeThickness="2">
<Path.Data>
<PathGeometry>
<PathFigure StartPoint="100,20" IsClosed="False">
<LineSegment Point="20,20"/>
<LineSegment Point="20,100"/>
<LineSegment Point="100,100"/>
</PathFigure>
</PathGeometry>
</Path.Data>
</Path>
Комментарии:
1. Я вижу, проблема в том, что моя реальная форма более сложная, чем в этом примере