Bagikan melalui


Memindahkan dan menggambar sintaks perintah

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

Properti yang menggunakan string perintah pindahkan dan gambar

Sintaks perintah pindahkan dan gambar didukung oleh pengonversi jenis internal untuk XAML, yang mengurai perintah dan menghasilkan representasi grafik run-time. 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 spesifik, inilah yang terlihat seperti:

<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 pindahkan dan gambar versus menggunakan PathGeometry

Untuk Windows Runtime XAML, perintah pindahkan dan gambar menghasilkan PathGeometry dengan satu objek PathFigure dengan nilai properti Gambar. Setiap perintah gambar menghasilkan kelas turunan PathSegment dalam kumpulan Segmen PathFigure tunggal tersebut, perintah pemindahan mengubah StartPoint, dan adanya perintah dekat yang diatur IsClosed ke true. 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 . (Selengkapnya 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] moveCommand drawCommand [drawCommand*] [closeCommand]

Banyak perintah gambar menggunakan titik, tempat Anda memberikan nilai x,y . Setiap kali Anda melihat tempat penampung *poin , Anda dapat menganggap Anda memberikan dua nilai desimal untuk nilai x,y poin.

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. Tetapi lebih khas untuk menyertakan spasi kosong di antara perintah untuk kejelasan.

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 pindahkan

Menentukan titik awal gambar baru.

Sintaks
M startPoint
- atau -
mstartPoint
Persyaratan Deskripsi
startPoint Titik
Titik awal dari figur baru.

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

Catatan Legal untuk menentukan beberapa poin setelah perintah pemindahan. Garis digambar ke titik-titik tersebut seolah-olah Anda menentukan perintah baris. Namun, itu bukan gaya yang direkomendasikan; gunakan perintah baris khusus sebagai gantinya.

Gambar perintah

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 sama 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. Menentukan setara dengan objek LineGeometry.

Sintaks
LEndpoint
- atau -
lEndpoint
Persyaratan Deskripsi
Endpoint Titik
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.

Sintaks
H x
-atau-
h x
Persyaratan Deskripsi
x Laju
Koordinat x dari titik akhir garis.

Perintah baris vertikal

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

Sintaks
V y
-atau-
v y
Persyaratan Deskripsi
y Laju
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 setara dengan objek PathGeometry dengan objek BezierSegment.

Sintaks
C controlPoint1 titik akhir controlPoint2
-atau-
c controlPoint1 titik akhir controlPoint2
Persyaratan Deskripsi
controlPoint1 Titik
Titik kontrol pertama kurva, yang menentukan tangen awal kurva.
controlPoint2 Titik
Titik kontrol kedua kurva, yang menentukan tangen akhir 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.

Sintaks
Q titik akhir controlPoint
-atau-
q titik akhir controlPoint
Persyaratan Deskripsi
controlPoint Titik
Titik kontrol kurva, yang menentukan tangen awal dan akhir kurva.
Endpoint Titik
Titik di mana kurva digambar.

Perintah kurva Bézier kubik 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 dengan PathGeometry dengan BezierSegment di mana ada segmen kurva sebelumnya.

Sintaks
ScontrolPoint2 Endpoint
-atau-
stitik akhir controlPoint2
Persyaratan Deskripsi
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 dengan QuadraticBezierSegment di mana ada segmen kurva sebelumnya.

Sintaks
TcontrolPoint Endpoint
-atau-
tcontrolPoint Endpoint
Persyaratan Deskripsi
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 setara dengan PathGeometry dengan ArcSegment.

Sintaks
A tingginya rotationAngle isLargeArcFlag sweepDirectionFlag endPoint
-atau-
a tingginya rotationAngle isLargeArcFlag sweepDirectionFlag endPoint
Persyaratan Deskripsi
ukuran Ukuran
Radius x dan y-radius busur.
rotationAngle Laju
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 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.

Sintaks
Z
-atau-
z

Sintaks titik

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

Sintaks
x,y
-atau-
xy
Persyaratan Deskripsi
x Laju
Koordinat x titik.
y Laju
Koordinat y 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 menghasilkan perintah pindahkan dan gambar

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

Anda mungkin melihat data perintah pemindahan dan gambar yang ada di beberapa bagian kontrol yang ditentukan dalam templat 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 pindahkan dan gambar untuk 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.)