Вот довольно простое решение проблемы, хотя оно не использует Ellipse
и требует небольшой тригонометрии:
<Path Fill="Black"
Data="M0,0 L0,-100 A100,100 0 0 1 70.7,-70.7 z" />
Свойство Data
использует Синтаксис разметки пути .
- "M" в начале указывает перу M ove к месту 0,0.
- "L" указывает перу на рисование L ин из текущего местоположения (0, 0) в 0, -100.
- «A» указывает перу нарисовать эллиптический A rc от текущего местоположения до 70,7, -70,7 (часть «100,100» определяет горизонтальный и вертикальный радиус эллипса, а «0» 0 1 "часть предназначена для
RotationAngle
, IsLargeArc
и SweepDirection
(1 для часовой стрелки, 0 для против часовой стрелки)).
- "z" указывает перу закрыть или завершить фигуру (что приведет к рисованию линии от 70,7, -70,7 до 0,0).
Откуда пришли 70,7? Ну, эта конкретная дуга выметает угол 45 градусов от круга с радиусом 100, поэтому координаты 70,7, -70,7 определяются 100 * sin(45)
и 100 * cos(45)
.