XAML中的点之谜

时间:2012-03-27 12:24:55

标签: wpf xaml geometry shape

enter image description here

我正在尝试使用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>

3 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分: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>

答案 2 :(得分:1)

<Point X="50" Y="150" />位置错误 - 全部。

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

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