XAML中点的奥秘

10

在此输入图像描述

我正在尝试使用XAML中的点创建一个多边形,根据我的理解,给定的点应该输出黑色填充的三角形,但它返回粉色填充的三角形。我不明白这是怎么回事,请告诉我。

此代码的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>
3个回答

9

点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>

3

点坐标系统与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>

谢谢Rachel,我已经更新了图片,请你再次验证一下。 - user831174
@MSingh 当然,已经更新了。要找出你需要的点,只需将X点视为Canvas.Left,将Y点视为Canvas.Top即可。 - Rachel

1
"

<Point X="50" Y="150" />位置错误 - 就是这样。

应该是:<Point X="150" Y="50" />

简单的X Y交换错误,你的理解没有问题。

"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接