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
<objectproperty="[ 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
<właściwość="figureDescription object[ 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
MStartpoint

- lub -

mStartpoint
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. 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,400elementu . W poniższej tabeli opisano polecenia przenoszenia i rysowania .

Wiersz polecenia

Tworzy linię prostą między bieżącym punktem a określonym punktem końcowym. l 20 30L 20,30 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 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
Hx

- lub -

hx
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
VY

- lub -

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

Składnia
CcontrolPoint1controlPoint2endPoint

- lub -

ccontrolPoint1controlPoint2endPoint
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 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 controlPoint2. Na przykład S 100,200 200,300 jest prawidłowym gładkim sześciennym poleceniem krzywej Beziera.

Składnia
ScontrolPoint2endPoint

- lub -

scontrolPoint2endPoint
Okres opis
controlPoint2 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ści
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ż