Udostępnij za pośrednictwem


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. i to przykłady prawidłowych poleceń wiersza .

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 (controlPoint1 i controlPoint2). C 100,200 200,400 300,200 jest przykładem prawidłowego polecenia krzywej.

Składnia
C controlPoint1controlPoint2endPoint

- lub -

c controlPoint1controlPoint2endPoint
Termin 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 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 controlPoint2. Na przykład S 100,200 200,300 jest prawidłowym poleceniem gładkiej sześciennej krzywej Béziera.

Składnia
S controlPoint2endPoint

- lub -

s controlPoint2endPoint
Termin Opis
controlPoint2 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ż