2012-03-27 7 views
9

enter image description heremisterio de puntos en XAML

Estoy tratando de crear un polígono usando puntos en XAML y según mi entender la salida con los puntos dados debe ser el triángulo con relleno negro, pero vuelvo el triángulo de color rosa llenar. No entiendo cómo está sucediendo esto. Amablemente hágamelo saber.

Tha xaml de esto es

<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

Lo probé en una nueva aplicación de prueba y lo puse en blanco con un trazo negro. ¿Puedes publicar todo el XAML de tu usercontrol o lo que sea? .. – Eyjafjallajokull

+0

Sí, tienes lo correcto, el color no importa, lo que importa es la forma, tienes la forma anterior, pero se espera que sea la de abajo. –

Respuesta

6

el punto x = 0 e Y = 0 se encuentra en la esquina superior izquierda, no en la esquina inferior izquierda. Entonces el dibujo es correcto

para conseguir lo que quiere es cambiar su xaml de la siguiente manera:

<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

He actualizado la imagen, reverify amablemente –

3

El sistema de puntos es la misma que la utilizada en un Canvas, donde 0,0 es la esquina superior izquierda

Por ejemplo, el punto 50,50 es como decir Canvas.Left="50" y Canvas.Top="50"

para conseguir la forma deseada, es necesario ajustar los puntos por lo que leen desde la parte superior-lef t en lugar de abajo a la izquierda.

<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

Gracias rachel, he actualizado la imagen, por favor, vuelva a verificar –

+0

@MSingh Claro, está actualizado. Para descubrir los puntos que necesita, simplemente considere el punto 'X' como 'Canvas.Left', y el punto' Y' como 'Canvas.Top' – Rachel

1

<Point X="50" Y="150" /> tiene una ubicación incorrecta - eso es todo.

debería ser: <Point X="150" Y="50" />

simple X Y intercambio error, no hay nada malo con su comprensión.