2012-03-27 203 views
9

enter image description here神秘点

我试图创建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> 
+0

我在新的测试应用程序中尝试过它,我用黑色笔画得到它。你可以发布你的用户控件的所有XAML吗? – Eyjafjallajokull 2012-03-27 12:31:48

+0

是的,你有正确的选择,颜色无关紧要,物质是形状的东西,你有上面的形状,但预期是下面的形状。 – 2012-03-27 12:34:55

回答

6

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

我已经更新了图片,好心地重新验证 – 2012-03-27 12:55:16

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> 
+0

谢谢rachel,我已经更新了图片,请你重新验证 – 2012-03-27 12:57:35

+0

@MSingh好的,它已经更新了。为了弄清楚你需要的点,只要考虑'X'指向'Canvas.Left',并且'Y'指向'Canvas.Top' – Rachel 2012-03-27 13:01:10

1

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

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

简单的X Y交换的错误,有什么不对您的理解。