2012-03-27 10 views
9

enter image description hereTajemnica punktów w XAML

Próbuję utworzyć wielokąt z wykorzystaniem punktów w XAML i zgodnie z moim rozumieniem wyjście z danym punktów powinien być trójkąt z czarnym wypełnieniem, ale powróci trójkąt z różowym napełnić. Nie rozumiem, jak to się dzieje. Uprzejmie proszę dać mi znać.

Tha XAML tego jest

<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

próbowałem go w nowej aplikacji testowej i dostaję to biały z czarnym udaru. Czy możesz opublikować wszystkie XAML swojej kontroli użytkownika lub cokolwiek? .. – Eyjafjallajokull

+0

Tak, masz prawo, kolor nie ma znaczenia, rzeczą, która ma znaczenie jest kształt, masz powyższy kształt, ale oczekuje się, że jest poniżej. –

Odpowiedz

6

punkcie X = 0 i Y = 0, w lewym górnym rogu, a nie w lewym dolnym narożniku. Więc rysunek jest poprawny.

Aby dostać to, co chcesz zmienić XAML następująco:

<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

Mam zaktualizowany obraz, uprzejmie zweryfikowania –

3

System punktów jest taka sama jak używana w Canvas, gdzie 0,0 to lewy górny róg

Na przykład, punkt 50,50 jest jak powiedzenie: Canvas.Left="50" i Canvas.Top="50"

Aby uzyskać pożądany kształt, należy dostosować punkty tak, aby były czytane od góry t zamiast lewego dolnego rogu.

<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

Thanks Rachel, mam zaktualizować obraz, to proszę zweryfikowania –

+0

@MSingh pewno, to zaktualizowane. Aby znaleźć potrzebne punkty, po prostu rozważ punkt 'X', a mianowicie' Canvas.Left' i punkt 'Y' jako' Canvas.Top' – Rachel

1

<Point X="50" Y="150" /> to niewłaściwa lokalizacja - to wszystko.

powinno być: <Point X="150" Y="50" />

Proste X Y interchange pomyłka, nie ma nic złego w swoim zrozumieniu.