Тайна точек в XAML

введите здесь описание изображения

Я пытаюсь создать многоугольник, используя точки в xaml, и, насколько я понимаю, вывод с заданными точками должен быть треугольником с черной заливкой, но он возвращает треугольник с розовой заливкой. Я не понимаю, как это происходит. Пожалуйста, дайте мне знать.

Tha xaml для этого

  <Polygon Width="237"
             Height="214"
             Fill="White"
             Stroke="Black"
             StrokeThickness="2">
        <Polygon.Points>
            <Point X="50" Y="50" />
            <Point X="150" Y="150" />
            <Point X="50" Y="150" />

        </Polygon.Points>
    </Polygon>

person manav inder    schedule 27.03.2012    source источник


Ответы (3)


Точки X=0 и Y=0 находятся в верхнем левом углу, а не в нижнем левом углу. Так что рисунок правильный.

Чтобы получить то, что вы хотите, нужно изменить свой xaml следующим образом:

<Polygon Width="237"
         Height="214"
         Fill="Black"
         Stroke="White"
         StrokeThickness="2">
    <Polygon.Points>
        <Point X="50" Y="150" />
        <Point X="150" Y="150" />
        <Point X="150" Y="50" />

    </Polygon.Points>
<Polygon>
person Jehof    schedule 27.03.2012

Система баллов та же, что и в Canvas, где 0,0 — верхний левый угол.

Например, пункт 50,50 похож на Canvas.Left="50" и Canvas.Top="50".

Чтобы получить желаемую форму, вам нужно отрегулировать точки так, чтобы они читались с верхнего левого угла, а не с нижнего левого.

<Polygon Width="237"
         Height="214"
         Fill="White"
         Stroke="Black"
         StrokeThickness="2">
    <Polygon.Points>
        <Point X="50" Y="50" />
        <Point X="150" Y="50" />
        <Point X="150" Y="150" />
    </Polygon.Points>
</Polygon>
person Rachel    schedule 27.03.2012
comment
Спасибо, Рэйчел, я обновил изображение, пожалуйста, проверьте еще раз - person manav inder; 27.03.2012
comment
@MSingh Конечно, он обновлен. Чтобы выяснить, какие точки вам нужны, просто рассмотрите точку X как Canvas.Left, а точку Y как Canvas.Top. - person Rachel; 27.03.2012

<Point X="50" Y="150" /> неправильное расположение - вот и все.

должно быть: <Point X="150" Y="50" />

Простая ошибка обмена X Y, с вашим пониманием все в порядке.

person G.Y    schedule 24.02.2013