Sintaksis Markup Jalur

Jalur dibahas dalam Bentuk dan Gambar Dasar dalam Gambaran Umum WPF dan Gambaran Umum Geometri, namun, topik ini menjelaskan secara rinci bahasa mini yang kuat dan kompleks yang dapat Anda gunakan untuk menentukan geometri jalur dengan lebih ringkas menggunakan Extensible Application Markup Language (XAML).

Prasyarat

Untuk memahami topik ini, Anda harus terbiasa dengan fitur Geometry dasar objek. Untuk informasi selengkapnya, lihat Gambaran Umum Geometri.

StreamGeometry dan PathFigureCollection Mini-Languages

WPF menyediakan dua kelas yang menyediakan bahasa mini untuk menjelaskan jalur geometris: StreamGeometry dan PathFigureCollection.

Seperti yang Anda lihat dari contoh sebelumnya, dua bahasa mini sangat mirip. Selalu mungkin untuk menggunakan PathGeometry dalam situasi apa pun di mana Anda dapat menggunakan StreamGeometry; jadi yang mana yang harus Anda gunakan? StreamGeometry Gunakan saat Anda tidak perlu mengubah jalur setelah membuatnya; gunakan PathGeometry jika Anda perlu memodifikasi jalur.

Untuk informasi selengkapnya tentang perbedaan antara PathGeometry objek dan StreamGeometry , lihat Gambaran Umum Geometri.

Catatan tentang Spasi Kosong

Untuk brevity, spasi tunggal ditampilkan di bagian sintaksis yang mengikuti, tetapi beberapa spasi juga dapat diterima di mana pun satu spasi ditampilkan.

Dua angka sebenarnya tidak harus dipisahkan oleh koma atau spasi putih, tetapi ini hanya dapat dilakukan ketika string yang dihasilkan tidak ambigu. Misalnya, 2..3 sebenarnya adalah dua angka: "2." Dan ".3". Demikian pula, 2-3 adalah "2" dan "-3". Spasi tidak diperlukan sebelum atau sesudah perintah, baik.

Sintaks

Sintaks penggunaan atribut Extensible Application Markup Language (XAML) untuk StreamGeometry terdiri dari nilai opsional FillRule dan satu atau beberapa deskripsi gambar.

Penggunaan Atribut StreamGeometry XAML
<properti=" objek[ fillRule] figureDescription[ figureDescription]*" ... />

Sintaks penggunaan atribut Extensible Application Markup Language (XAML) untuk PathFigureCollection terdiri dari satu atau beberapa deskripsi gambar.

Penggunaan Atribut PathFigureCollection XAML
<properti="figureDescription objek[ figureDescription]*" ... />
Persyaratan Deskripsi
fillRule System.Windows.Media.FillRule

Menentukan apakah StreamGeometry menggunakan EvenOdd atau NonzeroFillRule.

- F0 menentukan aturan pengisian EvenOdd .
- F1 menentukan aturan pengisian Nonzero .

Jika Anda menghilangkan perintah ini, subpath menggunakan perilaku default, yaitu EvenOdd. Jika Anda menentukan perintah ini, Anda harus menempatkannya terlebih dahulu.
figureDescription Gambar yang terdiri dari perintah pemindahan, perintah gambar, dan perintah tutup opsional.

moveCommand drawCommands [ closeCommand ]
pindahkanKommand Perintah pemindahan yang menentukan titik awal gambar. Lihat bagian Perintah Pemindahan.
drawCommands Satu atau beberapa perintah gambar yang menjelaskan konten gambar. Lihat bagian Gambar Perintah .
closeCommand Perintah tutup opsional yang menutup gambar. Lihat bagian Tutup Perintah .

Perintah Pemindahan

Menentukan titik awal gambar baru.

Sintaks
MstartPoint

- atau -

mstartPoint
Persyaratan Deskripsi
startPoint System.Windows.Point

Titik awal dari figur baru.

Huruf besar M menunjukkan bahwa startPoint adalah nilai absolut; huruf kecil m menunjukkan bahwa startPoint merupakan offset ke titik sebelumnya, atau (0,0) jika tidak ada. Jika Anda mencantumkan beberapa titik setelah perintah pemindahan, garis digambar ke titik tersebut meskipun Anda menentukan perintah baris.

Gambar Perintah

Perintah gambar dapat terdiri dari beberapa perintah bentuk. Perintah bentuk berikut tersedia: garis, garis horizontal, garis vertikal, kurva Bezier kubik, kurva Bezier kuadrat, kurva Bezier kubik halus, kurva Bezier kuadrat halus, dan busur elips.

Anda memasukkan setiap perintah dengan menggunakan huruf besar atau huruf kecil: huruf besar menunjukkan nilai absolut dan huruf kecil menunjukkan nilai relatif: titik kontrol untuk segmen tersebut relatif terhadap titik akhir contoh sebelumnya. 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. Tabel berikut ini menjelaskan perintah pindahkan dan gambar.

Perintah Baris

Membuat garis lurus antara titik saat ini dan titik akhir yang ditentukan. l 20 30dan L 20,30 merupakan contoh perintah baris yang valid.

Sintaks
LEndpoint

- atau -

lEndpoint
Persyaratan Deskripsi
Endpoint System.Windows.Point

Titik akhir garis.

Huruf besar L menunjukkan bahwa endPoint adalah nilai absolut; huruf kecil l menunjukkan bahwa endPoint merupakan offset ke titik sebelumnya, atau (0,0) jika tidak ada.

Perintah Garis Horizontal

Membuat garis horizontal antara titik saat ini dan koordinat x yang ditentukan. H 90 adalah contoh perintah baris horizontal yang valid.

Sintaks
Hx

- atau -

hx
Persyaratan Deskripsi
x System.Double

Koordinat x dari titik akhir garis.

Huruf besar H menunjukkan bahwa x adalah nilai absolut; huruf kecil h menunjukkan bahwa x merupakan offset ke titik sebelumnya, atau (0,0) jika tidak ada.

Perintah Garis Vertikal

Membuat garis vertikal antara titik saat ini dan koordinat y yang ditentukan. v 90 adalah contoh perintah baris vertikal yang valid.

Sintaks
Vy

- atau -

vy
Persyaratan Deskripsi
y System.Double

Koordinat y dari titik akhir garis.

Huruf besar V menunjukkan bahwa y adalah nilai absolut; huruf kecil v menunjukkan bahwa y merupakan offset ke titik sebelumnya, atau (0,0) jika tidak ada.

Perintah Kurva Bezier Kubik

Membuat kurva Bezier kubik antara titik saat ini dan titik akhir yang ditentukan dengan menggunakan dua titik kontrol yang ditentukan (controlPoint1 dan controlPoint2). C 100,200 200,400 300,200 adalah contoh perintah kurva yang valid.

Sintaks
CcontrolPoint1controlPoint2endPoint

- atau -

ccontrolPoint1controlPoint2endPoint
Persyaratan Deskripsi
controlPoint1 System.Windows.Point

Titik kontrol pertama kurva, yang menentukan tangen awal kurva.
controlPoint2 System.Windows.Point

Titik kontrol kedua kurva, yang menentukan tangen akhir kurva.
endPoint System.Windows.Point

Titik di mana kurva digambar.

Perintah Kurva Bezier Kuadrat

Membuat kurva Bezier kuadrat antara titik saat ini dan titik akhir yang ditentukan dengan menggunakan titik kontrol yang ditentukan (controlPoint). q 100,200 300,200 adalah contoh perintah kurva Bezier kuadrat yang valid.

Sintaks
Q controlPoint endPoint

- atau -

q controlPoint endPoint
Persyaratan Deskripsi
controlPoint System.Windows.Point

Titik kontrol kurva, yang menentukan tangen awal dan akhir kurva.
endPoint System.Windows.Point

Titik di mana kurva digambar.

Perintah kurva Bezier kubik halus

Membuat kurva Bezier kubik antara titik saat ini dan titik akhir yang ditentukan. Titik kontrol pertama diasumsikan sebagai cerminan titik kontrol kedua dari perintah sebelumnya relatif terhadap titik saat ini. Jika tidak ada perintah sebelumnya atau jika perintah sebelumnya bukan perintah kurva Bezier kubik atau perintah kurva Bezier kubik halus, asumsikan titik kontrol pertama bertepatan dengan titik saat ini. Titik kontrol kedua, titik kontrol untuk akhir kurva, ditentukan oleh controlPoint2. Misalnya, S 100,200 200,300 adalah perintah kurva Bezier kubik halus yang valid.

Sintaks
ScontrolPoint2endPoint

- atau -

scontrolPoint2endPoint
Persyaratan Deskripsi
controlPoint2 System.Windows.Point

Titik kontrol kurva, yang menentukan tangen akhir kurva.
endPoint System.Windows.Point

Titik di mana kurva digambar.

Perintah kurva Bezier kuadrat halus

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

Sintaks
T endPoint

- atau -

t endPoint
Persyaratan Deskripsi
endPoint System.Windows.Point

Titik di mana kurva digambar.

Perintah Busur Elips

Membuat busur elips antara titik saat ini dan titik akhir yang ditentukan.

Sintaks
A size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint

- atau -

a size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint
Persyaratan Deskripsi
size System.Windows.Size

Radius x dan y busur.
rotationAngle System.Double

Rotasi elips, dalam derajat.
isLargeArcFlag Atur ke 1 jika sudut busur harus 180 derajat atau lebih besar; jika tidak, atur ke 0.
sweepDirectionFlag Atur ke 1 jika busur digambar ke arah sudut positif; jika tidak, atur ke 0.
endPoint System.Windows.Point

Titik di mana busur digambar.

Perintah Tutup

Mengakhiri gambar saat ini dan membuat garis yang menghubungkan titik saat ini ke titik awal gambar. Perintah ini membuat gabungan baris (sudut) antara segmen terakhir dan segmen pertama gambar.

Sintaks
Z

- atau -

z

Sintaks Titik

Menjelaskan koordinat x dan y dari titik di mana (0,0) adalah sudut kiri atas.

Sintaks
x , y

- atau -

x y
Persyaratan Deskripsi
x System.Double

Koordinat x titik.
y System.Double

Koordinat y titik.

Nilai Khusus

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

Tak terbatas
Double.PositiveInfinityMewakili .

-Infinity
Double.NegativeInfinityMewakili .

NaN
Double.NaNMewakili .

Anda juga dapat menggunakan notasi ilmiah. Misalnya, +1.e17 adalah nilai yang valid.

Baca juga