Składni znacznikowania ścieżki
Ścieżki są omówione w sekcjach Kształty i Podstawowe rysowanie w przeglądzie WPF i Przegląd geometrii , jednak w tym temacie szczegółowo opisano zaawansowane i złożone minijęzyka, których można użyć do bardziej zwartego określania geometrii ścieżek przy użyciu języka Extensible Application Markup Language (XAML).
Wymagania wstępne
Aby zrozumieć ten temat, należy zapoznać się z podstawowymi funkcjami Geometry obiektów. Aby uzyskać więcej informacji, zobacz Geometry Overview (Omówienie geometrii).
StreamGeometry i PathFigureCollection Mini-Languages
WPF udostępnia dwie klasy, które zapewniają minijęzyki do opisywania ścieżek geometrycznych: StreamGeometry i PathFigureCollection.
Minijęzyka StreamGeometry jest używany podczas ustawiania właściwości typu Geometry, DataClipUIElementPath takiej jak właściwość elementu lub właściwość elementu . W poniższym przykładzie użyto składni atrybutu do utworzenia .StreamGeometry
<Path Stroke="Black" Fill="Gray" Data="M 10,100 C 10,300 300,-200 300,100" />Minijęzyka PathFigureCollection jest używany podczas ustawiania Figures właściwości obiektu PathGeometry. W poniższym przykładzie użyto składni atrybutu, aby utworzyć PathFigureCollection dla .PathGeometry
<Path Stroke="Black" Fill="Gray"> <Path.Data> <PathGeometry Figures="M 10,100 C 10,300 300,-200 300,100" /> </Path.Data> </Path>
Jak widać w poprzednich przykładach, dwa minijęzyki są bardzo podobne. Zawsze można użyć funkcji w PathGeometryStreamGeometrydowolnej sytuacji, w której można użyć ; więc której z nich należy użyć? Użyj wartości , gdy nie musisz modyfikować ścieżki po jej utworzeniu; PathGeometry użyj wartości , StreamGeometry jeśli chcesz zmodyfikować ścieżkę.
Aby uzyskać więcej informacji na temat różnic między obiektami PathGeometry i StreamGeometry , zobacz Geometry Overview (Omówienie geometrii).
Uwaga na temat białych spacji
W celu zwięzłości pojedyncze miejsce jest wyświetlane w kolejnych sekcjach składni, ale wiele spacji jest również akceptowalnych wszędzie tam, gdzie jest wyświetlana pojedyncza spacja.
Dwie liczby nie muszą być w rzeczywistości oddzielone przecinkami lub białymi znakami, ale można to zrobić tylko wtedy, gdy wynikowy ciąg jest niejednoznaczny. Na przykład w 2..3 rzeczywistości są to dwie liczby: "2" i ".3". Podobnie jest 2-3 to "2" i "-3". Spacje nie są wymagane przed lub po poleceniach.
Składnia
Składnia Extensible Application Markup Language (XAML) atrybutu dla elementu StreamGeometryFillRule składa się z opcjonalnej wartości i co najmniej jednego opisu rysunek.
| Użycie atrybutu XAML StreamGeometry |
|---|
<objectproperty="[ fillRule] figureDescription[ figureDescription]*" ... /> |
Składnia Extensible Application Markup Language (XAML) atrybutu dla elementu PathFigureCollection składa się z co najmniej jednego opisu rysunek.
| PathFigureCollection Użycie atrybutu XAML |
|---|
<objectproperty="figureDescription[ figureDescription]*" ... /> |
| Okres | Opis |
|---|---|
| fillRule | System.Windows.Media.FillRule Określa, czy program StreamGeometry używa lub NonzeroEvenOddFillRule. - F0 określa regułę EvenOdd wypełniania.- F1 określa regułę Nonzero wypełniania.Jeśli to polecenie zostanie pominięte, ścieżka podrzędna użyje zachowania domyślnego, czyli EvenOdd. Jeśli określisz to polecenie, musisz najpierw je umieścić. |
| figureDescription | Rysunek składający się z polecenia przenoszenia, rysowania poleceń i opcjonalnego polecenia zamknięcia.moveCommand drawCommands [ closeCommand ] |
| moveCommand | Polecenie przenoszenia, które określa punkt rozpoczęcia rysunku. Zobacz sekcję Move Command (Polecenie przenoszenia). |
| drawCommands | Co najmniej jedno polecenie rysowania opisujące zawartość rysunku. Zobacz sekcję Rysowanie poleceń . |
| closeCommand | Opcjonalne polecenie zamknięcia, które zamyka rysunek. Zobacz sekcję Zamknij polecenie . |
Move, polecenie
Określa punkt rozpoczęcia nowego rysunku.
| Składnia |
|---|
MStartpoint— lub — mStartpoint |
| Okres | Opis |
|---|---|
| Startpoint | System.Windows.Point Punkt startowy nowego rysunku. |
Wielkie litery wskazują M , startPoint że jest wartością bezwzględną; mstartPoint mała litera wskazuje, że jest przesunięciem do poprzedniego punktu lub (0,0), jeśli żadna nie istnieje. Jeśli lista zawiera wiele punktów po poleceniu przenoszenia, do tych punktów jest rysowana linia, mimo że określono polecenie wiersza.
Rysowanie poleceń
Polecenie draw może składać się z kilku poleceń kształtu. Dostępne są następujące polecenia kształtu: linia, linia pozioma, linia pionowa, krzywa Beziera, kwadratowa krzywa Beziera, płynna krzywa Beziera, płynna krzywa Beziera kwadratowa i kąt eliptyczny.
Każde polecenie jest wprowadzane przy użyciu wielkich lub małych liter: wielkie litery oznaczają wartości bezwzględne, a małe litery oznaczają wartości względne: punkty kontrolne dla tego segmentu są względne względem punktu końcowego poprzedniego przykładu. Sekwencyjnie wprowadzając więcej niż jedno polecenie tego samego typu, można pominąć zduplikowany wpis polecenia; na przykład jest L 100,200 300,400 odpowiednikiem .L 100,200 L 300,400 W poniższej tabeli opisano polecenia przenoszeniai rysowania .
Wiersz, polecenie
Tworzy linię prostą między bieżącym punktem a określonym punktem zakończenia. l 20 30 i L 20,30 są przykładami prawidłowych poleceń wiersza.
| Składnia |
|---|
LPunktu końcowego— lub — lPunktu końcowego |
| Okres | Opis |
|---|---|
| Punktu końcowego | System.Windows.Point Punkt końcowy linii. |
Wielkie litery wskazują L , endPoint że jest wartością bezwzględną; lendPoint mała litera wskazuje, że jest przesunięciem do poprzedniego punktu lub (0,0), jeśli żadna nie istnieje.
Wiersz poziomy , polecenie
Tworzy linię poziomą między bieżącym punktem a określoną współrzędną x. H 90 jest przykładem prawidłowego polecenia wiersza poziomego.
| Składnia |
|---|
HX— lub — hX |
| Okres | Opis |
|---|---|
| x | System.Double Współrzędna x punktu końcowego linii. |
Wielkie litery wskazują H , x że jest wartością bezwzględną; hx mała litera wskazuje, że jest przesunięciem do poprzedniego punktu lub (0,0), jeśli żadna nie istnieje.
Wiersz pionowy, polecenie
Tworzy linię pionową między bieżącym punktem a określoną współrzędną y. v 90 jest przykładem prawidłowego polecenia wiersza pionowego.
| Składnia |
|---|
VY— lub — vY |
| Okres | Opis |
|---|---|
| Y | System.Double Współrzędna y punktu końcowego linii. |
Wielkie litery wskazują V , y że jest wartością bezwzględną; vy mała litera wskazuje, że jest przesunięciem do poprzedniego punktu lub (0,0), jeśli żadna nie istnieje.
Polecenie beziera beziera
Tworzy cytną krzywą Beziera między bieżącym punktem a określonym punktem zakończenia przy użyciu dwóch określonych punktów kontrolnych (controlPoint1 i controlPoint2). C 100,200 200,400 300,200 jest przykładem prawidłowego polecenia krzywej.
| Składnia |
|---|
CcontrolPoint12controlPointendPoint— lub — ccontrolPoint12controlPointendPoint |
| Okres | Opis |
|---|---|
controlPoint1 |
System.Windows.Point Pierwszy punkt kontrolny krzywej, który określa tangens początkowy krzywej. |
controlPoint2 |
System.Windows.Point Drugi punkt kontrolny krzywej, który określa końcowy tangens krzywej. |
endPoint |
System.Windows.Point Punkt, do którego jest rysowana krzywa. |
Quadratic Bezier Curve , polecenie
Tworzy kwadratową krzywą Beziera między bieżącym punktem a określonym punktem zakończenia przy użyciu określonego punktu kontrolnego (controlPoint). q 100,200 300,200 jest przykładem prawidłowego, kwadratowego polecenia krzywej Beziera.
| Składnia |
|---|
Q controlPoint endPoint— lub — q controlPoint endPoint |
| Okres | Opis |
|---|---|
controlPoint |
System.Windows.Point Punkt kontrolny krzywej, który określa tangens początkowy i końcowy krzywej. |
endPoint |
System.Windows.Point Punkt, do którego jest rysowana krzywa. |
Bezproblemowe polecenie beziera krzywej Beziera
Tworzy cytną krzywą Beziera między bieżącym punktem a określonym punktem zakończenia. Zakłada się, że pierwszy punkt kontrolny jest odzwierciedleniem drugiego punktu kontrolnego poprzedniego polecenia względem bieżącego punktu. Jeśli nie istnieje żadne poprzednie polecenie lub jeśli poprzednie polecenie nie było poleceniem krzywej Beziera ani bezproblemowym poleceniem krzywej Beziera, załóżmy, że pierwszy punkt kontrolny jest zbieżny z bieżącym punktem. Drugi punkt kontrolny, punkt kontrolny końca krzywej, jest określony przez wartość controlPoint2. Na przykład to prawidłowe S 100,200 200,300 polecenie beziera krzywej beziera.
| Składnia |
|---|
ScontrolPoint2endPoint— lub — scontrolPoint2endPoint |
| Okres | Opis |
|---|---|
controlPoint2 |
System.Windows.Point Punkt kontrolny krzywej, który określa końcowy tangens krzywej. |
endPoint |
System.Windows.Point Punkt, do którego jest rysowana krzywa. |
Polecenie Smooth quadratic Bezier curve (Bezproblemowa krzywa Beziera)
Tworzy kwadratową krzywą Beziera między bieżącym punktem a określonym punktem zakończenia. Zakłada się, że punkt kontrolny jest odzwierciedleniem punktu kontrolnego poprzedniego polecenia względem bieżącego punktu. Jeśli nie istnieje żadne poprzednie polecenie lub jeśli poprzednie polecenie nie było poleceniem krzywej Beziera kwadratowego lub bezproblemową krzywą Beziera, punkt kontrolny jest zbieżny z bieżącym punktem.
| Składnia |
|---|
T endPoint— lub — t endPoint |
| Okres | Opis |
|---|---|
endPoint |
System.Windows.Point Punkt, do którego jest rysowana krzywa. |
Eliptyczny arc, polecenie
Tworzy eliptyczny kąt między bieżącym punktem a określonym punktem zakończenia.
| Składnia |
|---|
A size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint— lub — a size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint |
| Okres | Opis |
|---|---|
size |
System.Windows.Size Promień x i y łuku. |
rotationAngle |
System.Double Obrót wielokropka w stopniach. |
isLargeArcFlag |
Ustaw wartość 1, jeśli kąt łuku powinien być 180 stopni lub większy; w przeciwnym razie ustaw wartość 0. |
sweepDirectionFlag |
Ustaw wartość 1, jeśli arc jest rysowany w kierunku kąta dodatniego; w przeciwnym razie ustaw wartość 0. |
endPoint |
System.Windows.Point Punkt, do którego jest rysowany arc. |
Zamknij polecenie
Kończy bieżący rysunek i tworzy linię, która łączy bieżący punkt z punktem początkowym rysunku. To polecenie tworzy sprzężenia wiersza (narożnik) między ostatnim segmentem i pierwszym segmentem rysunku.
| Składnia |
|---|
Z— lub — z |
Składnia punktu
Opisuje współrzędne x i y punktu, w którym (0,0) jest lewym górnym rogu.
| Składnia |
|---|
x , y— lub — x y |
| Okres | Opis |
|---|---|
x |
System.Double Współrzędna x punktu. |
y |
System.Double Współrzędna y punktu. |
Wartości specjalne
Zamiast standardowej wartości liczbowej można również użyć następujących wartości specjalnych. W tych wartościach jest wielkość liter.
Nieskończoność
Reprezentuje wartość Double.PositiveInfinity.
-Nieskończoność
Reprezentuje wartość Double.NegativeInfinity.
NaN
Reprezentuje wartość Double.NaN.
Można również użyć notacji naukowej. Na przykład jest +1.e17 prawidłową wartością.