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:
- Mulailah dengan aturan pengisian opsional. Biasanya Anda menentukan ini hanya jika Anda tidak menginginkan default EvenOdd . (Selengkapnya tentang EvenOdd nanti.)
- Tentukan tepat satu perintah pemindahan.
- Tentukan satu atau beberapa perintah gambar.
- 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 - m startPoint |
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 |
---|
L Endpoint - atau - l Endpoint |
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 |
---|
S controlPoint2 Endpoint -atau- s titik 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 |
---|
T controlPoint Endpoint -atau- t controlPoint 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.)