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.
Anda menggunakan StreamGeometry bahasa mini saat mengatur properti jenis Geometry, seperti Clip properti dari atau UIElementData properti Path elemen. Contoh berikut menggunakan sintaks atribut untuk membuat StreamGeometry.
<Path Stroke="Black" Fill="Gray" Data="M 10,100 C 10,300 300,-200 300,100" />
Anda menggunakan PathFigureCollection bahasa mini saat mengatur Figures properti .PathGeometry Contoh berikut menggunakan sintaks atribut untuk membuat PathFigureCollection untuk PathGeometry.
<Path Stroke="Black" Fill="Gray"> <Path.Data> <PathGeometry Figures="M 10,100 C 10,300 300,-200 300,100" /> </Path.Data> </Path>
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 |
---|
M startPoint- atau - m startPoint |
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 30
dan L 20,30
merupakan contoh perintah baris yang valid.
Sintaks |
---|
L Endpoint- atau - l Endpoint |
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 |
---|
H x- atau - h x |
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 |
---|
V y- atau - v y |
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 (controlPoint
1 dan controlPoint
2). C 100,200 200,400 300,200
adalah contoh perintah kurva yang valid.
Sintaks |
---|
C controlPoint 1controlPoint 2endPoint - atau - c controlPoint 1controlPoint 2endPoint |
Persyaratan | Deskripsi |
---|---|
controlPoint 1 |
System.Windows.Point Titik kontrol pertama kurva, yang menentukan tangen awal kurva. |
controlPoint 2 |
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 controlPoint
2. Misalnya, S 100,200 200,300
adalah perintah kurva Bezier kubik halus yang valid.
Sintaks |
---|
S controlPoint 2endPoint - atau - s controlPoint 2endPoint |
Persyaratan | Deskripsi |
---|---|
controlPoint 2 |
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
.NET Desktop feedback
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk