środa, 14 listopada 2012

70-511 Rozdział 3 - Graficzny interfejs użytwkonika - kształty - Kształty

Kształty to graficzne prymitywy. Wszystkie kształty w WPFie dziedziczą po klasie Shape, która dziedziczy po klasie Visual. Niektóre z jej właściwości:
  •  Fill - wypełnianie
  •  Stroke - kolor obramowania
  • StrokeThickness - grubość obramowania
  • Stretch - określa jak kształt wypełnia dostępną ptrzestrzeń

Rectangle i Ellipse
Dwa podstawowe kształty: prostokąt i elipsa:


Code:
<Rectangle Height="100" Width="200" Fill="Blue"/>
<Ellipse Height="100" Width="200" Fill="Blue"/>

Jeżeli nie zostanie ustawiona wartość Height i Width można użyć właściwości Stretch w celu określenia jak kształt ma wypełnić wolną przestrzeń. Aby uzyskać zaokrąglone krawędzie można użyć właściwości RadiusX oraz RadiusY


Line i Polyline
Linia używa współrzędnych relatywnych do kontenera w którym jest malowana:


Code:
<Line Stroke="Red" X1="0" Y1="50" X2="100" Y2="440"/>

Polyline reprezentuje linię przebiegającą przez wyspecyfikowanie punkty. Pierwszy punkt jest początkiem, ostatni końcem:


Code:
<Polyline Stroke="Green"
Points="300, 300 400, 400 400, 300 500, 400 500, 300"/>

Przecinki między parami X,Y nie są wymagane jednak zwiększa się dzięki nim czytelność kodu.


Polygon
Wielokąt jest podobny do Polyline, z tym że dodatkowo łączy pierwszy punkt z ostatnim oraz pozwala wypełnić zdefiniowany wielokąt poprzez właściwość Fill:


Code:
<Polygon Fill="Green"
Points="300, 300 400, 400 400, 300 500, 400 500, 300"/>

Jeżeli linie w wielokącie się krzyżują w jaki sposób jest wypełniany kolorem decyduje właściwość NonZero , które może przyjąć następujące wartości:
  • EvenOdd - zliczana jest ilość linii potrzebna do dostania się do ograniczonego obszaru. Jeżeli zamknięty obszar można wyznaczyć przez nieparzystą ilość linii jest on wypełniany, w przeciwnym przypadku nie jest wypełniany.
  • NonZero - zliczana jest ilość linii potrzebnych do dostania się do zamkniętego obszaru oraz ich kierunek.
Na temat FillRule można więcej poczytać pod adresem: http://msdn.microsoft.com/en-us/library/system.windows.media.fillrule.aspx



Path
Path jest najbardziej skomplikowanym rodzajem kształtu. Opisuje skomplikowane kształty złożone z innych podstawowych kształtów. W Path możemy użyć następujące typy geometryczne:
  • CombinedGeometry - pozwala połączyć dwa obiekty typu Geometr
  • EllipseGeometry - dane opisujące elipsę
  • LineGeometry - reprezentuje linię
  • PathGeometry - reprezentuje obiekt złożony z wielu linii, łuków i krzywych
  • RectangleGeometry - reprezentuje prostokąt
  • StreamGeometry - odpowiednik PathGeometry z tą różnicą, że tylko do odczytu 
Przykład:

Code:
        <Path Fill="Blue" Margin="50">
            <Path.Data>
                <EllipseGeometry RadiusX="40" RadiusY="40" />
            </Path.Data>
        </Path>

Klasa CombinedGeometry pozwala stworzyć obiekt złożony z wielu figur. Sposób ich łączenia determinuje właściwość GeometryCombineMode która może przyjąć następujące wartości:
  • Exclude - odjęcie drugiego kształtu od pierwszego
  • Intersect - przecięcie, czyli część wspólna
  • Xor - przestrzeń nie dzielona wspólnie między figurami
  • Union - suma

Brak komentarzy:

Prześlij komentarz