Shapes

Shapes umożliwiają to samo GeometryDrawing jednak z racji tego, że dziedziczą bezpośrednio po FrameworkElement mogą być użyte bezpośrednio w UI. Wystarczy napisać:

<Button>

    <Ellipse Fill=”Pink” Width=”200″ Height=”100″ Stroke=”Black” StrokeThickness=”5″/>

Button>

Jakie mamy dostępne elementy? Podobnie jak w przypadku GeometryDrawing są to: Rectangle, Ellipse, Line, Polyline, Polygon oraz Path. Zobaczmy co ciekawego udostępniają nam niektóre z tych kontrolek.

Rectangle

Prócz standardowych właściwości pozwalających na ustawienie rozmiaru prostokąta mamy możliwość ustawienia poziomy zaokrąglenia jego rogów.

<Rectangle Fill=”Pink” Width=”200″ Height=”100″ Stroke=”Black” StrokeThickness=”5″ RadiusX=”20″ RadiusY=”50″/>

Polyline

Polyline umożliwia utworzenie łamanej z odcinków. Punkty definiujemy za pomocą właściwości Points.

<Polyline Points=”0,0 100,20 10,40 90,60 20,80 80,100 30,118 70,136 40,154 60,172 50,180″ Stroke=”Black” StrokeThickness=”4″ />

Co da nam taka definicja?

Polygon

Polygon to w zasadzie Polyline, który dodatkowo za nas tworzy linię łączącą ostatni i pierwszy punkt z naszej krzywej, zamykając naszą figurę.

Path

Wszystkie powyższe kształty da się reprezentować za pomocą tego elementu.

<Path Data=”M0,0 L 100,20 10,40 90,60 20,80 80,100 30,118 70,136 40,154 60,172 50,180″ Stroke=”Black” StrokeThickness=”4″/>

Da nam taki sam wynik jak użycie Polyline.
Na koniec mała uwaga. Użycie tych klas może być dużym obciążeniem dla naszej aplikacji więc zalecane jest ich rozsądne użycie.

W następnym odcinku omówimy klasę Brush i pochodne.