Bagikan melalui


Sintaks markup jalur

Telusuri sampel. Telusuri sampel

Sintaks markup jalur .NET Multi-platform App UI (.NET MAUI) memungkinkan Anda menentukan geometri jalur secara ringkas di XAML.

Sintaks markup jalur ditentukan sebagai nilai string ke Path.Data properti:

<Path Stroke="Black"
      Data="M13.908992,16.207977 L32.000049,16.207977 32.000049,31.999985 13.908992,30.109983Z" />

Sintaks markup jalur terdiri dari nilai opsional FillRule , dan satu atau beberapa deskripsi gambar. Sintaks ini dapat dinyatakan sebagai: <Path Data="[fillRule] figureDescription [figureDescription] * " ... />

Dalam sintaks ini:

  • fillRule adalah opsional FillRule yang menentukan apakah geometri harus menggunakan aturan pengisian EvenOdd atau Nonzero . F0 digunakan untuk menentukan EvenOdd aturan isian, saat F1 digunakan untuk menentukan Nonzero aturan isian. Untuk informasi selengkapnya tentang aturan isian, lihat Mengisi aturan.
  • figureDescription mewakili gambar yang terdiri dari perintah pemindahan, perintah gambar, dan perintah tutup opsional. Perintah pemindahan menentukan titik awal gambar. Perintah gambar menjelaskan konten gambar, dan perintah tutup opsional menutup gambar.

Dalam contoh di atas, sintaks markup jalur menentukan titik mulai menggunakan perintah pemindahan (M), serangkaian garis lurus menggunakan perintah baris (L), dan menutup jalur dengan perintah tutup (Z).

Dalam sintaks markup jalur, spasi tidak diperlukan sebelum atau sesudah perintah. Selain itu, dua angka tidak harus dipisahkan oleh koma atau spasi putih, tetapi ini hanya dapat dicapai ketika string tidak ambigu.

Tip

Sintaks markup jalur kompatibel dengan definisi jalur gambar Scalable Vector Graphics (SVG), sehingga dapat berguna untuk porting grafis dari format SVG.

Meskipun sintaks markup jalur ditujukan untuk konsumsi di XAML, itu dapat dikonversi ke Geometry objek dalam kode dengan memanggil ConvertFromInvariantString metode di PathGeometryConverter kelas :

Geometry pathData = (Geometry)new PathGeometryConverter().ConvertFromInvariantString("M13.908992,16.207977 L32.000049,16.207977 32.000049,31.999985 13.908992,30.109983Z");

Perintah pindahkan

Perintah pemindahan menentukan titik awal gambar baru. Sintaks untuk perintah ini adalah: M startPoint atau m startPoint.

Dalam sintaks ini, startPoint adalah Point struktur yang menentukan titik awal gambar baru. Jika Anda mencantumkan beberapa titik setelah perintah pemindahan, garis akan digambar ke titik-titik tersebut.

M 10,10 adalah contoh perintah pemindahan yang valid.

Gambar perintah

Perintah gambar dapat terdiri dari beberapa perintah bentuk. Perintah gambar berikut tersedia:

  • Baris (L atau l).
  • Garis horizontal (H atau h).
  • Garis vertikal (V atau v).
  • Busur elips (A atau a).
  • Kurva Cubic Bezier (C atau c).
  • Kurva Bezier kuadrat (Q atau q).
  • Kurva Bezier kubik halus (S atau s).
  • Kurva Bezier kuadrat halus (T atau t).

Setiap perintah gambar ditentukan dengan huruf yang tidak peka huruf besar/kecil. Saat secara berurutan memasukkan lebih dari satu perintah dengan jenis yang sama, Anda dapat menghilangkan entri perintah duplikat. Misalnya L 100,200 300,400 setara dengan L 100,200 L 300,400.

Perintah baris

Perintah baris membuat garis lurus antara titik saat ini dan titik akhir yang ditentukan. Sintaks untuk perintah ini adalah: L endPoint atau l endPoint.

Dalam sintaks ini, endPoint adalah Point titik akhir garis yang mewakili titik akhir.

L 20,30 dan L 20 30 merupakan contoh perintah baris yang valid.

Untuk informasi tentang membuat garis lurus sebagai PathGeometry objek, lihat Membuat LineSegment.

Perintah garis horizontal

Perintah garis horizontal membuat garis horizontal antara titik saat ini dan koordinat x yang ditentukan. Sintaks untuk perintah ini adalah: H x atau h x.

Dalam sintaks ini, x adalah double yang mewakili koordinat x dari titik akhir garis.

H 90 adalah contoh perintah baris horizontal yang valid.

Perintah baris vertikal

Perintah garis vertikal membuat garis vertikal antara titik saat ini dan koordinat y yang ditentukan. Sintaks untuk perintah ini adalah: V y atau v y.

Dalam sintaks ini, y adalah double yang mewakili koordinat y dari titik akhir garis.

V 90 adalah contoh perintah baris vertikal yang valid.

Perintah busur elips

Perintah busur elips membuat busur elips antara titik saat ini dan titik akhir yang ditentukan. Sintaks untuk perintah ini adalah: A rotasi ukuranAngle isLargeArcFlag sweepDirectionFlag endPoint atau a rotasi ukuranAngle isLargeArcFlag sweepDirectionFlag endPoint.

Dalam sintaks ini:

  • sizeSize adalah yang mewakili radius x dan y busur.
  • rotationAngle adalah double yang mewakili rotasi elips, dalam derajat.
  • isLargeArcFlag harus diatur ke 1 jika sudut busur harus 180 derajat atau lebih besar, jika tidak, atur ke 0.
  • sweepDirectionFlag harus diatur ke 1 jika busur digambar dalam arah sudut positif, jika tidak, atur ke 0.
  • endPoint adalah busur Point yang digambar.

A 150,150 0 1,0 150,-150 adalah contoh perintah busur elips yang valid.

Untuk informasi tentang membuat busur elips sebagai PathGeometry objek, lihat Membuat ArcSegment.

Perintah kurva Bezier kubik

Perintah kurva Bezier kubik membuat kurva Bezier kubik antara titik saat ini dan titik akhir yang ditentukan dengan menggunakan dua titik kontrol yang ditentukan. Sintaks untuk perintah ini adalah: C controlPoint1 controlPoint2 endPoint atau c controlPoint1 controlPoint2 endPoint.

Dalam sintaks ini:

  • controlPoint1 adalah Point yang mewakili titik kontrol pertama kurva, yang menentukan tangen awal kurva.
  • controlPoint2 adalah Point yang mewakili titik kontrol kedua kurva, yang menentukan tangen akhir kurva.
  • endPoint adalah Point yang mewakili titik di mana kurva digambar.

C 100,200 200,400 300,200 adalah contoh perintah kurva Bezier kubik yang valid.

Untuk informasi tentang membuat kurva Bezier kubik sebagai PathGeometry objek, lihat Membuat BezierSegment.

Perintah kurva Quadratic Bezier

Perintah kurva Bezier kuadrat membuat kurva Bezier kuadrat antara titik saat ini dan titik akhir yang ditentukan dengan menggunakan titik kontrol yang ditentukan. Sintaks untuk perintah ini adalah: Q titik akhir controlPoint atau q titik akhir controlPoint.

Dalam sintaks ini:

  • controlPoint adalah Point yang mewakili titik kontrol kurva, yang menentukan tangen awal dan akhir kurva.
  • endPoint adalah Point yang mewakili titik di mana kurva digambar.

Q 100,200 300,200 adalah contoh perintah kurva Bezier kuadrat yang valid.

Untuk informasi tentang membuat kurva Bezier kuadrat sebagai PathGeometry objek, lihat Membuat QuadraticBezierSegment.

Perintah kurva Bezier kubik halus

Perintah kurva Bezier kubik halus membuat kurva Bezier kubik antara titik saat ini dan titik akhir yang ditentukan dengan menggunakan titik kontrol yang ditentukan. Sintaks untuk perintah ini adalah: S titik akhir controlPoint2 atau stitik akhir controlPoint2.

Dalam sintaks ini:

  • controlPoint2 adalah Point yang mewakili titik kontrol kedua kurva, yang menentukan tangen akhir kurva.
  • endPoint adalah Point yang mewakili titik di mana kurva digambar.

Titik kontrol pertama diasumsikan sebagai cerminan titik kontrol kedua dari perintah sebelumnya, relatif terhadap titik saat ini. Jika tidak ada perintah sebelumnya, atau perintah sebelumnya bukan perintah kurva Bezier kubik atau perintah kurva Bezier kubik halus, titik kontrol pertama diasumsikan bertepatan dengan titik saat ini.

S 100,200 200,300 adalah contoh perintah kurva Bezier kubik halus yang valid.

Perintah kurva Bezier kuadrat halus

Perintah kurva Bezier kuadrat halus membuat kurva Bezier kuadrat antara titik saat ini dan titik akhir yang ditentukan dengan menggunakan titik kontrol. Sintaks untuk perintah ini adalah: T endPoint atau t endPoint.

Dalam sintaks ini, endPoint adalah Point yang mewakili titik di mana kurva digambar.

Titik kontrol diasumsikan sebagai pantulan titik kontrol perintah sebelumnya relatif terhadap titik saat ini. Jika tidak ada perintah sebelumnya atau jika perintah sebelumnya bukan kurva Bezier kuadrat atau perintah kurva Bezier kuadrat yang halus, titik kontrol diasumsikan bertepatan dengan titik saat ini.

T 100,30 adalah contoh perintah kurva Bezier kuadrat kuadrat halus yang valid.

Tutup perintah

Perintah tutup mengakhiri gambar saat ini dan membuat garis yang menyambungkan titik saat ini ke titik awal gambar. Oleh karena itu, perintah ini membuat gabungan baris antara segmen terakhir dan segmen pertama gambar.

Sintaks untuk perintah tutup adalah: Z atau z.

Nilai tambahan

Alih-alih nilai numerik standar, Anda juga dapat menggunakan nilai khusus peka huruf besar/kecil berikut:

  • Infinitydouble.PositiveInfinitymewakili .
  • -Infinitydouble.NegativeInfinitymewakili .
  • NaNdouble.NaNmewakili .

Selain itu, Anda juga dapat menggunakan notasi ilmiah yang tidak peka huruf besar/kecil. Oleh karena itu, +1.e17 adalah nilai yang valid.