Bagikan melalui


Sintaks perintah 'Move' dan 'Draw'

Pelajari tentang perintah pindahkan dan gambar (bahasa mini) yang dapat Anda gunakan untuk menentukan geometri jalur sebagai nilai atribut XAML. Perintah memindahkan dan menggambar digunakan oleh banyak alat desain dan grafik yang dapat menghasilkan grafik atau bentuk vektor, dalam bentuk serialisasi dan format pertukaran.

Properti-properti yang menggunakan string perintah gerak dan gambar

Sintaks perintah memindahkan dan menggambar didukung oleh konverter tipe internal untuk XAML, yang mengurai perintah dan menghasilkan representasi grafik waktu-nyata. Representasi ini pada dasarnya adalah sekumpulan vektor selesai yang siap untuk presentasi. Vektor itu sendiri tidak menyelesaikan detail presentasi; Anda masih perlu mengatur nilai lain pada elemen. Untuk objek Jalur , Anda juga memerlukan nilai untuk Isian, Goresan, dan properti lainnya, lalu Jalur tersebut harus terhubung ke pohon visual entah bagaimana. Untuk objek PathIcon , atur properti Latar Depan .

Ada dua properti di Windows Runtime yang dapat menggunakan string yang mewakili perintah pindahkan dan gambar: Path.Data dan PathIcon.Data. Jika Anda mengatur salah satu properti ini dengan menentukan perintah pindahkan dan gambar, Anda biasanya mengaturnya sebagai nilai atribut XAML bersama dengan atribut lain yang diperlukan dari elemen tersebut. Tanpa masuk ke dalam rincian spesifik, berikut ini penjelasan secara umum:

<Path x:Name="Arrow" Fill="White" Height="11" Width="9.67"
  Data="M4.12,0 L9.67,5.47 L4.12,10.94 L0,10.88 L5.56,5.47 L0,0.06" />

Menggunakan perintah pindah dan menggambar versus menggunakan PathGeometry

Untuk Windows Runtime XAML, perintah pindahkan dan gambar menghasilkan PathGeometry dengan satu objek PathFigure dengan nilai properti Figures. Setiap perintah gambar menghasilkan kelas turunan PathSegment dalam koleksi PathFigure tunggal tersebut Segmen, perintah pemindahan mengubah StartPoint, dan keberadaan perintah penutupan mengatur IsClosed ke benar. Anda dapat menavigasi struktur ini sebagai model objek jika Anda memeriksa nilai Data pada waktu proses.

Sintaks dasar

Sintaks untuk perintah pindahkan dan gambar dapat diringkas seperti ini:

  1. Mulailah dengan aturan pengisian opsional. Biasanya Anda menentukan ini hanya jika Anda tidak menginginkan default EvenOdd . (Lebih lanjut tentang EvenOdd nanti.)
  2. Tentukan tepat satu perintah pemindahan.
  3. Tentukan satu atau beberapa perintah gambar.
  4. Tentukan perintah tutup. Anda dapat menghilangkan perintah dekat , tetapi itu akan membuat figur Anda terbuka (jarang terjadi).

Aturan umum sintaks ini adalah:

  • Setiap perintah diwakili oleh tepat satu huruf.
  • Huruf itu bisa huruf besar atau kecil. Kasus penting, seperti yang akan kita jelaskan.
  • Setiap perintah kecuali perintah tutup biasanya diikuti oleh satu atau beberapa angka.
  • Jika lebih dari satu angka untuk perintah, pisahkan dengan koma atau spasi.

[fillRule]moveCommanddrawCommand[drawCommand*][closeCommand]

Banyak perintah gambar menggunakan titik, tempat Anda memberikan nilai x,y . Setiap kali Anda melihat *placeholder poin*, Anda dapat membayangkan bahwa Anda memberikan dua nilai desimal untuk nilai x,y dari sebuah titik.

Ruang kosong sering dapat dihilangkan ketika hasilnya tidak ambigu. Anda sebenarnya dapat menghilangkan semua spasi kosong jika Anda menggunakan koma sebagai pemisah Anda untuk semua set angka (titik dan ukuran). Misalnya, penggunaan ini legal: F1M0,58L2,56L6,60L13,51L15,53L6,64z. Namun, biasanya menyertakan spasi di antara perintah agar lebih jelas.

Jangan gunakan koma sebagai titik desimal untuk angka desimal; string perintah ditafsirkan oleh XAML dan tidak memperhitungkan konvensi pemformatan angka khusus budaya yang berbeda dari yang digunakan dalam lokal en-us .

Spesifikasi sintaks

Mengisi aturan

Ada dua nilai yang mungkin untuk aturan pengisian opsional: F0 atau F1. ( F selalu huruf besar.) F0 adalah nilai default; ini menghasilkan perilaku pengisian EvenOdd , sehingga Anda biasanya tidak menentukannya. Gunakan F1 untuk mendapatkan perilaku pengisian Nonzero . Nilai isi ini selaras dengan nilai enumerasi FillRule .

Perintah Move

Menentukan titik awal untuk sebuah figura baru.

Syntax
M startPoint
- atau -
m startPoint
Istilah Description
startPoint Titik
Titik awal dari figur baru.

Huruf besar M menunjukkan bahwa startPoint adalah koordinat absolut; huruf kecil m menunjukkan bahwa startPoint merupakan offset dari titik sebelumnya, atau (0,0) jika tidak ada titik sebelumnya.

Nota Adalah sah untuk menentukan beberapa titik setelah menggunakan perintah pindah. Garis digambar ke titik-titik tersebut seolah-olah Anda menentukan perintah baris. Namun, itu bukan gaya yang direkomendasikan; gunakan perintah baris khusus sebagai gantinya.

Perintah menggambar

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

Untuk semua perintah gambar, masalah kasus. Huruf besar menunjukkan koordinat absolut dan huruf kecil menunjukkan koordinat relatif terhadap perintah sebelumnya.

Titik kontrol untuk segmen relatif terhadap titik akhir segmen 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.

Perintah baris

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

Syntax
L Endpoint
- atau -
l Endpoint
Istilah Description
Endpoint Poin
Titik akhir garis.

Perintah garis horizontal

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

Syntax
H x
-atau-
h x
Istilah Description
x Double
Koordinat x dari titik akhir garis.

Perintah garis vertikal

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

Syntax
V y
-atau-
v y
Istilah Description
y Dobel
Koordinat y dari titik akhir garis.

Perintah kurva Bézier kubik

Membuat kurva Bézier 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. Menentukan padanan dari objek PathGeometry bersama dengan objek BezierSegment.

Syntax
C controlPoint1controlPoint2endPoint
-atau-
c controlPoint1controlPoint2endPoint
Istilah Description
controlPoint1 Titik
Titik kendali pertama kurva, yang menentukan tangen awal kurva.
controlPoint2 Titik
Titik kontrol kedua dari kurva, yang menentukan tangen pengakhiran dari kurva.
Endpoint Titik
Titik di mana kurva digambar.

Perintah kurva Quadratic Bézier

Membuat kurva Bézier kuadrat antara titik saat ini dan titik akhir yang ditentukan dengan menggunakan titik kontrol (controlPoint) yang ditentukan. q 100,200 300,200 adalah contoh perintah kurva Bézier kuadrat yang valid. Menentukan setara dengan PathGeometry dengan QuadraticBezierSegment.

Syntax
Q titik akhir controlPoint
-atau-
q titik akhir controlPoint
Istilah Description
controlPoint Titik
Titik kontrol kurva, yang menentukan tangen awal dan akhir kurva.
Endpoint Titik
Titik di mana kurva digambar.

Perintah kurva Bézier kubik yang halus

Membuat kurva Bézier 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 Bézier kubik atau perintah kurva Bézier 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 Bézier kubik halus yang valid. Perintah ini mendefinisikan setara PathGeometry dengan BezierSegment di mana ada segmen kurva yang mendahuluinya.

Syntax
S controlPoint2titik akhir
-atau-
s titik akhir controlPoint2
Istilah Description
controlPoint2 Titik
Titik kontrol kurva, yang menentukan tangen akhir kurva.
Endpoint Titik
Titik di mana kurva digambar.

Perintah kurva Bézier kuadrat halus

Membuat kurva Bézier 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 Bézier kuadrat atau perintah kurva Bézier kuadrat yang halus, titik kontrol bertepatan dengan titik saat ini. Perintah ini mendefinisikan setara dengan PathGeometry yang memiliki QuadraticBezierSegment yang sebelumnya terdapat segmen kurva.

Syntax
T controlPointtitik akhir
-atau-
t controlPointendPoint
Istilah Description
controlPoint Titik
Titik kontrol kurva, yang menentukan awal dan tangen kurva.
Endpoint Titik
Titik di mana kurva digambar.

Perintah busur elips

Membuat busur elips antara titik saat ini dan titik akhir yang ditentukan. Menentukan padanan dari PathGeometry dengan ArcSegment.

Syntax
A ukuranrotationAngleisLargeArcFlagsweepDirectionFlagendPoint
-atau-
a ukuransudutRotasiisLargeArcFlagbenderaArahSaputitikAkhir
Istilah Description
ukuran Tingginya
Radius x dan y-radius busur.
rotationAngle Dobel
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 dalam arah sudut positif; jika tidak, atur ke 0.
Endpoint Titik
Titik di mana busur digambar.

Tutup perintah

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.

Syntax
Z
-atau-
z

Sintaks titik

Menjelaskan koordinat x dan koordinat y titik. Lihat juga Titik.

Syntax
x,y
-atau-
xy
Istilah Description
x Dobel
Koordinat x dari titik.
y Dobel
Koordinat y dari titik.

Catatan tambahan

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

  • Infinity: Mewakili PositiveInfinity.
  • -Infinity: Mewakili NegativeInfinity.
  • NaN: Mewakili NaN.

Alih-alih menggunakan desimal atau bilangan bulat, Anda dapat menggunakan notasi ilmiah. Misalnya, +1.e17 adalah nilai yang valid.

Alat desain yang dapat membuat perintah memindahkan dan menggambar

Menggunakan alat Pena dan alat gambar lainnya di Blend untuk Microsoft Visual Studio 2015 biasanya akan menghasilkan objek Jalur, dengan perintah berpindah dan menggambar.

Anda mungkin melihat data perintah pindah dan menggambar yang sudah ada di beberapa bagian kontrol yang ditentukan dalam template default Windows Runtime XAML untuk kontrol. Misalnya, beberapa kontrol menggunakan PathIcon yang memiliki data yang didefinisikan sebagai perintah pindahkan dan gambar.

Ada pengekspor atau plug-in yang tersedia untuk alat desain vektor-grafis lain yang umum digunakan yang dapat menghasilkan vektor dalam bentuk XAML. Ini biasanya membuat objek Jalur dalam kontainer tata letak, dengan perintah untuk memindahkan dan menggambar Path.Data. Mungkin ada beberapa elemen Jalur di XAML sehingga kuas yang berbeda dapat diterapkan. Banyak pengekspor atau plug-in ini awalnya ditulis untuk Windows Presentation Foundation (WPF) XAML atau Silverlight, tetapi sintaks jalur XAML identik dengan Windows Runtime XAML. Biasanya, Anda dapat menggunakan potongan XAML dari pengekspor dan menempelkannya langsung ke halaman Windows Runtime XAML. (Namun, Anda tidak akan dapat menggunakan RadialGradientBrush, jika itu adalah bagian dari XAML yang dikonversi, karena Windows Runtime XAML tidak mendukung kuas tersebut.)