Składnia znaczników ścieżki
Ścieżki zostały omówione w Kształty i Podstawowy rysunek w WPF Overview i Geometry Overview, jednak w tym temacie szczegółowo opisano zaawansowany i złożony mini-język, którego można użyć do bardziej zwięzłego określania geometrii ścieżek przy użyciu eXtensible Application Markup Language (XAML).
Warunki wstępne
Aby zrozumieć ten temat, należy zapoznać się z podstawowymi funkcjami obiektów Geometry. Aby uzyskać więcej informacji, zobacz omówienie geometrii .
StreamGeometry i PathFigureCollection Mini-Languages
WPF udostępnia dwie klasy, które zapewniają minijęzyczne opisy ścieżek geometrycznych: StreamGeometry i PathFigureCollection.
Podczas ustawiania właściwości typu Geometry, należy użyć minijęzyka StreamGeometry, takiego jak właściwość Clip elementu UIElement lub właściwość Data elementu Path. 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" />
Aby ustawić właściwość Figures dla PathGeometry, należy użyć minijęzyka PathFigureCollection. W poniższym przykładzie użyto składni atrybutu do utworzenia 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ęzyczne języki są bardzo podobne. Zawsze można użyć PathGeometry w każdej sytuacji, w której można użyć StreamGeometry; więc którego należy użyć? Użyj StreamGeometry, gdy nie musisz modyfikować ścieżki po jej utworzeniu; użyj PathGeometry, jeśli musisz zmodyfikować ścieżkę.
Aby uzyskać więcej informacji na temat różnic między obiektami PathGeometry i StreamGeometry, zobacz Geometry Overview.
Uwaga dotycząca białych znaków
Dla zwięzłości, w poniższych sekcjach składni jest pokazana pojedyncza spacja, ale wiele spacji jest również akceptowalnych wszędzie tam, gdzie pokazano pojedynczą spację.
Dwie liczby nie muszą być rozdzielone przecinkiem lub białym znakiem, ale można to zrobić tylko wtedy, gdy wynikowy ciąg jest jednoznaczny. Na przykład 2..3
to dwie liczby: "2"." i "3". Podobnie 2-3
to "2" i "-3". Spacje nie są wymagane przed lub po poleceniach.
Składnia
Składnia użycia atrybutu Extensible Application Markup Language (XAML) dla StreamGeometry składa się z opcjonalnej wartości FillRule i jednego lub więcej opisów figur.
Użycie atrybutu StreamGeometry XAML |
---|
<
obiektwłaściwość=" [ fillRule ] figureDescription [ figureDescription ]* " ... /> |
Składnia użycia atrybutu Extensible Application Markup Language (XAML) dla PathFigureCollection składa się z jednego lub więcej opisów figury.
PathFigureCollection Użycie atrybutu XAML |
---|
<
właściwośćobiektu=" figureDescription [ figureDescription ]* " ... /> |
Termin | Opis |
---|---|
regułaWypełnienia | System.Windows.Media.FillRule Określa, czy StreamGeometry używa EvenOdd, czy NonzeroFillRule. - F0 określa regułę wypełnienia EvenOdd.- F1 określa regułę wypełnienia Nonzero.Jeśli pominięto to polecenie, ścieżka podrzędna używa domyślnego zachowania, które jest EvenOdd. Jeśli określisz to polecenie, musisz najpierw go umieścić. |
figureDescription | Figura składająca się z polecenia przenoszenia, poleceń rysowania i opcjonalnego polecenia zamknięcia.moveCommand
drawCommands
[
closeCommand
]
|
polecenie przeniesienia | Polecenie przenoszenia, które określa punkt początkowy rysunku. Zobacz sekcję Move Command. |
poleceniaRysowania | Co najmniej jedno polecenie rysunku opisujące zawartość rysunku. Zobacz sekcję Polecenia rysowania. |
closeCommand | Opcjonalne polecenie zamknięcia, które zamyka rysunek. Zobacz sekcję Zamknij polecenie. |
Przenieś polecenie
Określa punkt początkowy nowego rysunku.
Składnia |
---|
M
punkt startowy- lub - m
punktStartowy |
Termin | Opis |
---|---|
punkt startowy | System.Windows.Point Punkt początkowy nowego rysunku. |
Wielkie litery M
wskazują, że startPoint
jest wartością bezwzględną; małe litery m
wskazują, że startPoint
jest przesunięciem do poprzedniego punktu lub (0,0), jeśli żaden z nich nie istnieje. Jeśli po poleceniu przesunięcia zostanie wyświetlonych wiele punktów, linia zostanie narysowana do tych punktów, choć określono polecenie linii.
Polecenia rysowania
Polecenie rysowania 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 Béziera sześcienna, krzywa Béziera kwadratowa, gładka krzywa Béziera sześcienna, gładka krzywa Béziera kwadratowa i łuk eliptyczny.
Każde polecenie należy wprowadzić przy użyciu wielkiej litery lub małej litery: wielkie litery oznaczają wartości bezwzględne i małe litery oznaczają wartości względne: punkty kontrolne dla tego segmentu są względne względem punktu końcowego poprzedniego przykładu.
Wskazówka
Podczas sekwencyjnie wprowadzania więcej niż jednego polecenia tego samego typu można pominąć zduplikowany wpis polecenia; na przykład L 100,200 300,400
jest odpowiednikiem L 100,200 L 300,400
.
Wiersz polecenia
Tworzy linię prostą między bieżącym punktem a określonym punktem końcowym.
Składnia |
---|
L
punkt końcowy- albo - l
punkt końcowy |
Termin | Opis |
---|---|
punkt końcowy programu | System.Windows.Point Punkt końcowy linii. |
Wielkie litery L
wskazują, że endPoint
jest wartością bezwzględną; małe litery l
wskazują, że endPoint
jest przesunięciem do poprzedniego punktu lub (0,0), jeśli żaden z nich nie istnieje.
Polecenie linii poziomej
Tworzy linię poziomą między bieżącym punktem a określoną współrzędną x.
H 90
jest przykładem prawidłowego polecenia linii poziomej.
Składnia |
---|
H
x- lub - h
x |
Termin | Opis |
---|---|
x | System.Double Współrzędna x punktu końcowego linii. |
Wielkie litery H
wskazują, że x
jest wartością bezwzględną; małe litery h
wskazują, że x
jest przesunięciem do poprzedniego punktu lub (0,0), jeśli żaden z nich nie istnieje.
Polecenie linii pionowej
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 |
---|
V
y- albo - v
y |
Termin | Opis |
---|---|
y | System.Double Współrzędna y punktu końcowego linii. |
Wielkie litery V
wskazują, że y
jest wartością bezwzględną; małe litery v
wskazują, że y
jest przesunięciem do poprzedniego punktu lub (0,0), jeśli żaden z nich nie istnieje.
Polecenie sześciennej krzywej Béziera
Tworzy krzywą beziera sześcienną między bieżącym punktem a określonym punktem końcowym przy użyciu dwóch określonych punktów kontrolnych (controlPoint
1 i controlPoint
2).
C 100,200 200,400 300,200
jest przykładem prawidłowego polecenia krzywej.
Składnia |
---|
C
controlPoint 1controlPoint 2endPoint - lub - c
controlPoint 1controlPoint 2endPoint |
Termin | Opis |
---|---|
controlPoint 1 |
System.Windows.Point Pierwszy punkt kontrolny krzywej, który określa tangens początkowy krzywej. |
controlPoint 2 |
System.Windows.Point Drugi punkt kontrolny krzywej, który określa koniec tangensu krzywej. |
endPoint |
System.Windows.Point Punkt, do którego rysuje się krzywa. |
Kwadratowa krzywa Beziera — polecenie
Tworzy krzywą beziera kwadratową między bieżącym punktem a określonym punktem końcowym przy użyciu określonego punktu kontrolnego (controlPoint
).
q 100,200 300,200
jest przykładem prawidłowego polecenia krzywej Beziera kwadratowego.
Składnia |
---|
Q
controlPoint
endPoint
- lub - q
controlPoint
endPoint
|
Termin | 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. |
Polecenie wygładzonej sześciennej krzywej Béziera
Tworzy krzywą beziera sześcienną między bieżącym punktem a określonym punktem końcowym. Przyjmuje się, że pierwszy punkt kontrolny jest odzwierciedleniem drugiego punktu kontrolnego poprzedniego polecenia względem bieżącego punktu. Jeśli nie ma poprzedniego polecenia lub jeśli poprzednie polecenie nie było poleceniem sześciennej krzywej Beziera lub gładkiej sześciennej krzywej Beziera, przyjmijmy, że pierwszy punkt kontrolny jest pokrywający się z bieżącym punktem. Drugi punkt kontrolny, punkt kontrolny końca krzywej, jest określony przez controlPoint
2. Na przykład S 100,200 200,300
jest prawidłowym poleceniem gładkiej sześciennej krzywej Béziera.
Składnia |
---|
S
controlPoint 2endPoint - lub - s
controlPoint 2endPoint |
Termin | Opis |
---|---|
controlPoint 2 |
System.Windows.Point Punkt kontrolny krzywej, który określa koniec tangensa krzywej. |
endPoint |
System.Windows.Point Punkt, do którego rysowana jest krzywa. |
Komenda wygładzonej kwadratowej krzywej Béziera
Tworzy krzywą beziera kwadratową między bieżącym punktem a określonym punktem końcowym. Przyjmuje się, że punkt kontrolny jest odbiciem punktu kontrolnego poprzedniego polecenia względem bieżącego punktu. Jeśli nie ma poprzedniego polecenia lub poprzednie polecenie nie było poleceniem krzywej Beziera kwadratowego lub gładkim poleceniem krzywej Beziera, punkt kontrolny jest zbieżny z bieżącym punktem.
Składnia |
---|
T
endPoint
- lub - t
endPoint
|
Termin | Opis |
---|---|
endPoint |
System.Windows.Point Punkt, do którego rysuje się krzywa. |
Polecenie łuku eliptycznego
Tworzy łuk eliptyczny między bieżącym punktem a określonym punktem końcowym.
Składnia |
---|
A
size
rotationAngle
isLargeArcFlag
sweepDirectionFlag
endPoint
-lub- a
size
rotationAngle
isLargeArcFlag
sweepDirectionFlag
endPoint
|
Termin | Opis |
---|---|
size |
System.Windows.Size Promienie x i y łuku. |
rotationAngle |
System.Double Obrót elipsy w stopniach. |
isLargeArcFlag |
Ustaw wartość 1, jeśli kąt łuku powinien mieć wartość 180 stopni lub większą; w przeciwnym razie ustaw wartość 0. |
sweepDirectionFlag |
Ustaw wartość 1, jeśli łuk jest rysowany w kierunku dodatnim; w przeciwnym razie ustaw wartość 0. |
endPoint |
System.Windows.Point Punkt, do którego rysowany jest łuk. |
Polecenie zamknięcia
Kończy bieżący rysunek i tworzy linię łączącą bieżący punkt z punktem początkowym rysunku. To polecenie tworzy połączenie liniowe między ostatnim a pierwszym segmentem rysunku.
Składnia |
---|
Z - lub - z |
Składnia punktowa
Opisuje współrzędne x i y punktu, w którym (0,0) jest lewym górnym rogiem.
Składnia |
---|
x
,
y
- lub - x
y
|
Termin | 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. Te wartości są uwzględniane w wielkości liter.
Nieskończoność
Reprezentuje Double.PositiveInfinity.
-Nieskończoność
Reprezentuje Double.NegativeInfinity.
NaN
Reprezentuje Double.NaN.
Możesz również użyć notacji naukowej. Na przykład +1.e17
jest prawidłową wartością.
Zobacz też
.NET Desktop feedback