Składni znacznikowania ścieżki
Ścieżki zostały omówione w artykułach Kształty i Podstawowy rysunek w przeglądzie WPF i Przegląd geometrii, jednak w tym temacie opisano szczegółowo zaawansowany i złożony minijęzyczny, którego można użyć do określania geometrii ścieżek bardziej kompaktowo przy użyciu rozszerzalnego języka znaczników aplikacji (XAML).
Wymagania wstępne
Aby zrozumieć ten temat, należy zapoznać się z podstawowymi Geometry funkcjami 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ęzyczne opisy ścieżek geometrycznych: StreamGeometry i PathFigureCollection.
Podczas ustawiania właściwości typu Geometry, takiej jak Clip właściwość UIElement elementu lub Data właściwość elementu, należy użyć StreamGeometry minijęzycznego Path języka. W poniższym przykładzie użyto składni atrybutów do utworzenia elementu StreamGeometry.
<Path Stroke="Black" Fill="Gray" Data="M 10,100 C 10,300 300,-200 300,100" />
Podczas ustawiania Figures właściwości obiektu należy użyć PathFigureCollection minijęzycznego PathGeometryjęzyka . W poniższym przykładzie użyto składni atrybutu do utworzenia PathFigureCollection elementu dla elementu 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ć dowolnego miejsca, w którym można użyć PathGeometry wartości StreamGeometry; więc której z nich należy użyć? Użyj elementu StreamGeometry , jeśli nie musisz modyfikować ścieżki po jej utworzeniu. Użyj PathGeometry elementu , jeśli musisz 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 dotycząca białych znaków
W przypadku zwięzłości pojedyncza przestrzeń jest wyświetlana 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ć 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 wartość 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 elementu StreamGeometry składa się z opcjonalnej FillRule wartości i co najmniej jednego opisu rysunku.
Użycie atrybutu XAML elementu StreamGeometry |
---|
< sprzeciwiać się property =" [ fillRule ] figureDescription [ figureDescription ]*" ... /> |
Składnia użycia atrybutu Extensible Application Markup Language (XAML) dla elementu PathFigureCollection składa się z co najmniej jednego opisu rysunku.
PathFigureCollection Użycie atrybutu XAML |
---|
< sprzeciwiać się właściwość =" figureDescription [ figureDescription ]*" ... /> |
Okres | opis |
---|---|
fillRule | System.Windows.Media.FillRule Określa, czy StreamGeometry używa parametru EvenOdd lub NonzeroFillRule. - F0 określa regułę EvenOdd wypełnienia.- F1 określa regułę Nonzero wypełnienia.Jeśli pominięto to polecenie, ścieżka podrzędna używa domyślnego zachowania, czyli EvenOdd. Jeśli określisz to polecenie, musisz najpierw go umieścić. |
rysunekDescription | 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 początkowy rysunku. Zobacz sekcję Move Command (Przenieś polecenie ). |
drawCommands | Co najmniej jedno polecenie rysunku opisujące zawartość rysunku. Zobacz sekcję Rysuj polecenia . |
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 startPoint- lub - m startPoint |
Okres | opis |
---|---|
startPoint | System.Windows.Point Punkt początkowy nowego rysunku. |
Wielkie litery M
wskazują, że startPoint
jest to wartość bezwzględna; małe litery m
wskazują, że startPoint
jest przesunięciem do poprzedniego punktu lub (0,0), jeśli żadna z nich nie istnieje. Jeśli po poleceniu przenoszenia zostanie wyświetlonych wiele punktów, wiersz zostanie narysowany na te punkty, choć określono polecenie wiersza.
Rysuj polecenia
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 sześcienna, krzywa Beziera kwadratowego, gładka krzywa Beziera sześciennego, gładka krzywa Beziera i łuk wielokropkowy.
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.
Napiwek
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
elementu .
Wiersz polecenia
Tworzy linię prostą między bieżącym punktem a określonym punktem końcowym. l 20 30
są L 20,30
przykładami prawidłowych poleceń wiersza .
Składnia |
---|
L punkt końcowy- lub - l punkt końcowy |
Okres | opis |
---|---|
punkt końcowy | System.Windows.Point Punkt końcowy linii. |
Wielkie litery L
wskazują, że endPoint
jest to wartość bezwzględna; małe litery l
wskazują, że endPoint
jest przesunięciem do poprzedniego punktu lub (0,0), jeśli żadna z nich nie istnieje.
Polecenie wiersza poziomego
Tworzy linię poziomą między bieżącym punktem a określoną współrzędną x. H 90
to przykład prawidłowego polecenia wiersza poziomego.
Składnia |
---|
H x- lub - h x |
Okres | opis |
---|---|
x | System.Double Współrzędna x punktu końcowego linii. |
Wielkie litery H
wskazują, że x
jest to wartość bezwzględna; małe litery h
wskazują, że x
jest przesunięciem do poprzedniego punktu lub (0,0), jeśli żadna z nich nie istnieje.
Wiersz pionowy — polecenie
Tworzy linię pionową między bieżącym punktem a określoną współrzędną y. v 90
to przykład prawidłowego polecenia wiersza pionowego.
Składnia |
---|
V y- lub - v y |
Okres | opis |
---|---|
y | System.Double Współrzędna y punktu końcowego linii. |
Wielkie litery V
wskazują, że y
jest to wartość bezwzględna; małe litery v
wskazują, że y
jest przesunięciem do poprzedniego punktu lub (0,0), jeśli żadna z nich nie istnieje.
Sześcienna krzywa Beziera, polecenie
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
to przykład prawidłowego polecenia krzywej.
Składnia |
---|
C controlPoint 1controlPoint 2endPoint - lub - c controlPoint 1controlPoint 2endPoint |
Okres | 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 jest rysowana krzywa. |
Kwadratowa krzywa Beziera — polecenie
Tworzy krzywą Beziera kwadratowego między bieżącym punktem a określonym punktem końcowym przy użyciu określonego punktu kontrolnego (controlPoint
). q 100,200 300,200
to przykład prawidłowego polecenia krzywej Beziera kwadratowego.
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. |
Smooth sześcienna Krzywa Beziera Polecenie
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 sześciennym poleceniem krzywej Beziera lub gładką krzywą beziera sześcienną, 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 controlPoint
2. Na przykład S 100,200 200,300
jest prawidłowym gładkim sześciennym poleceniem krzywej Beziera.
Składnia |
---|
S controlPoint 2endPoint - lub - s controlPoint 2endPoint |
Okres | opis |
---|---|
controlPoint 2 |
System.Windows.Point Punkt kontrolny krzywej, który określa koniec tangensa krzywej. |
endPoint |
System.Windows.Point Punkt, do którego jest rysowana krzywa. |
Smooth quadratic Bezier curve Command
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ładką 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. |
Polecenie wielokropkowego łuku
Tworzy wielokropek 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 |
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 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 jest rysowany łuk. |
Zamknij polecenie
Kończy bieżący rysunek i tworzy linię łączącą bieżący punkt z punktem początkowym rysunku. To polecenie tworzy sprzężenia liniowego (rogu) między ostatnim segmentem a 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. Te wartości są uwzględniane w wielkości liter.
Infinity
Reprezentuje Double.PositiveInfinitywartość .
-Nieskończoność
Reprezentuje Double.NegativeInfinitywartość .
NaN
Reprezentuje Double.NaNwartość .
Możesz również użyć notacji naukowej. Na przykład +1.e17
jest prawidłową wartością.
Zobacz też
.NET Desktop feedback