Xamarin.Forms Bentuk: Sintaks markup jalur
Xamarin.Forms sintaks markup jalur memungkinkan Anda menentukan geometri jalur secara ringkas di XAML. Sintaks ditentukan sebagai nilai string ke Path.Data
properti:
<Path Stroke="Black"
Data="M13.908992,16.207977 L32.000049,16.207977 32.000049,31.999985 13.908992,30.109983Z" />
Sintaks markup jalur terdiri dari nilai opsional FillRule
, dan satu atau beberapa deskripsi gambar. Sintaks ini dapat dinyatakan sebagai: <Path Data="
[fillRule]figureDescription[figureDescription] * " ... />
Dalam sintaks ini:
- fillRule adalah opsional
Xamarin.Forms.Shapes.FillRule
yang menentukan apakah geometri harus menggunakanEvenOdd
atauNonzero
FillRule
.F0
digunakan untuk menentukanEvenOdd
aturan isian, saatF1
digunakan untuk menentukanNonzero
aturan isian. Untuk informasi selengkapnya tentang aturan isian, lihat Xamarin.Forms Bentuk: Mengisi aturan. - figureDescription mewakili gambar yang terdiri dari perintah pemindahan, perintah gambar, dan perintah tutup opsional. Perintah pemindahan menentukan titik awal gambar. Perintah gambar menjelaskan konten gambar, dan perintah tutup opsional menutup gambar.
Dalam contoh di atas, sintaks markup jalur menentukan titik mulai menggunakan perintah pemindahan (M
), serangkaian garis lurus menggunakan perintah baris (L
), dan menutup jalur dengan perintah tutup (Z
).
Dalam sintaks markup jalur, spasi tidak diperlukan sebelum atau sesudah perintah. Selain itu, dua angka tidak harus dipisahkan oleh koma atau spasi putih, tetapi ini hanya dapat dicapai ketika string tidak ambigu.
Tip
Sintaks markup jalur kompatibel dengan definisi jalur gambar Scalable Vector Graphics (SVG), sehingga dapat berguna untuk porting grafis dari format SVG.
Meskipun sintaks markup jalur ditujukan untuk konsumsi di XAML, itu dapat dikonversi ke Geometry
objek dalam kode dengan memanggil ConvertFromInvariantString
metode di PathGeometryConverter
kelas :
Geometry pathData = (Geometry)new PathGeometryConverter().ConvertFromInvariantString("M13.908992,16.207977 L32.000049,16.207977 32.000049,31.999985 13.908992,30.109983Z");
Perintah pindahkan
Perintah pemindahan menentukan titik awal gambar baru. Sintaks untuk perintah ini adalah: M
startPoint atau m
startPoint.
Dalam sintaks ini, startPoint adalah Point
struktur yang menentukan titik awal gambar baru. Jika Anda mencantumkan beberapa titik setelah perintah pemindahan, garis akan digambar ke titik-titik tersebut.
M 10,10
adalah contoh perintah pemindahan yang valid.
Gambar perintah
Perintah gambar dapat terdiri dari beberapa perintah bentuk. Perintah gambar berikut tersedia:
- Baris (
L
ataul
). - Garis horizontal (
H
atauh
). - Garis vertikal (
V
atauv
). - Busur elips (
A
ataua
). - Kurva Cubic Bezier (
C
atauc
). - Kurva Bezier kuadrat (
Q
atauq
). - Kurva Bezier kubik halus (
S
ataus
). - Kurva Bezier kuadrat halus (
T
ataut
).
Setiap perintah gambar ditentukan dengan huruf yang tidak peka huruf besar/kecil. 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
Perintah baris membuat garis lurus antara titik saat ini dan titik akhir yang ditentukan. Sintaks untuk perintah ini adalah: L
endPoint atau l
endPoint.
Dalam sintaks ini, endPoint adalah Point
titik akhir garis yang mewakili titik akhir.
L 20,30
dan L 20 30
merupakan contoh perintah baris yang valid.
Untuk informasi tentang membuat garis lurus sebagai PathGeometry
objek, lihat Membuat LineSegment.
Perintah garis horizontal
Perintah garis horizontal membuat garis horizontal antara titik saat ini dan koordinat x yang ditentukan. Sintaks untuk perintah ini adalah: H
x atau h
x.
Dalam sintaks ini, x adalah double
yang mewakili koordinat x dari titik akhir garis.
H 90
adalah contoh perintah baris horizontal yang valid.
Perintah baris vertikal
Perintah garis vertikal membuat garis vertikal antara titik saat ini dan koordinat y yang ditentukan. Sintaks untuk perintah ini adalah: V
y atau v
y.
Dalam sintaks ini, y adalah double
yang mewakili koordinat y dari titik akhir garis.
V 90
adalah contoh perintah baris vertikal yang valid.
Perintah busur elips
Perintah busur elips membuat busur elips antara titik saat ini dan titik akhir yang ditentukan. Sintaks untuk perintah ini adalah: A
rotasi ukuranAngleisLargeArcFlagsweepDirectionFlagendPoint atau a
rotasi ukuranAngleisLargeArcFlagsweepDirectionFlagendPoint.
Dalam sintaks ini:
size
Size
adalah yang mewakili radius x dan y busur.rotationAngle
adalahdouble
yang mewakili rotasi elips, dalam derajat.isLargeArcFlag
harus diatur ke 1 jika sudut busur harus 180 derajat atau lebih besar, jika tidak, atur ke 0.sweepDirectionFlag
harus diatur ke 1 jika busur digambar dalam arah sudut positif, jika tidak, atur ke 0.endPoint
adalah busurPoint
yang digambar.
A 150,150 0 1,0 150,-150
adalah contoh perintah busur elips yang valid.
Untuk informasi tentang membuat busur elips sebagai PathGeometry
objek, lihat Membuat ArcSegment.
Perintah kurva Bezier kubik
Perintah kurva Bezier kubik membuat kurva Bezier kubik antara titik saat ini dan titik akhir yang ditentukan dengan menggunakan dua titik kontrol yang ditentukan. Sintaks untuk perintah ini adalah: C
controlPoint1controlPoint2endPoint atau c
controlPoint1controlPoint2endPoint.
Dalam sintaks ini:
- controlPoint1 adalah
Point
yang mewakili titik kontrol pertama kurva, yang menentukan tangen awal kurva. - controlPoint2 adalah
Point
yang mewakili titik kontrol kedua kurva, yang menentukan tangen akhir kurva. - endPoint adalah
Point
yang mewakili titik di mana kurva digambar.
C 100,200 200,400 300,200
adalah contoh perintah kurva Bezier kubik yang valid.
Untuk informasi tentang membuat kurva Bezier kubik sebagai PathGeometry
objek, lihat Membuat BezierSegment.
Perintah kurva Quadratic Bezier
Perintah kurva Bezier kuadrat membuat kurva Bezier kuadrat antara titik saat ini dan titik akhir yang ditentukan dengan menggunakan titik kontrol yang ditentukan. Sintaks untuk perintah ini adalah: Q
titik akhir controlPointatauq
titik akhir controlPoint.
Dalam sintaks ini:
- controlPoint adalah
Point
yang mewakili titik kontrol kurva, yang menentukan tangen awal dan akhir kurva. - endPoint adalah
Point
yang mewakili titik di mana kurva digambar.
Q 100,200 300,200
adalah contoh perintah kurva Bezier kuadrat yang valid.
Untuk informasi tentang membuat kurva Bezier kuadrat sebagai PathGeometry
objek, lihat Membuat QuadraticBezierSegment.
Perintah kurva Bezier kubik halus
Perintah kurva Bezier kubik halus membuat kurva Bezier kubik antara titik saat ini dan titik akhir yang ditentukan dengan menggunakan titik kontrol yang ditentukan. Sintaks untuk perintah ini adalah: S
titik akhir controlPoint2atau s
titik akhir controlPoint2.
Dalam sintaks ini:
- controlPoint2 adalah
Point
yang mewakili titik kontrol kedua kurva, yang menentukan tangen akhir kurva. - endPoint adalah
Point
yang mewakili titik di mana kurva digambar.
Titik kontrol pertama diasumsikan sebagai cerminan titik kontrol kedua dari perintah sebelumnya, relatif terhadap titik saat ini. Jika tidak ada perintah sebelumnya, atau perintah sebelumnya bukan perintah kurva Bezier kubik atau perintah kurva Bezier kubik halus, titik kontrol pertama diasumsikan bertepatan dengan titik saat ini.
S 100,200 200,300
adalah contoh perintah kurva Bezier kubik halus yang valid.
Perintah kurva Bezier kuadrat halus
Perintah kurva Bezier kuadrat halus membuat kurva Bezier kuadrat antara titik saat ini dan titik akhir yang ditentukan dengan menggunakan titik kontrol. Sintaks untuk perintah ini adalah: T
endPoint atau t
endPoint.
Dalam sintaks ini, endPoint adalah Point
yang mewakili titik di mana kurva digambar.
Titik kontrol diasumsikan sebagai pantulan titik kontrol perintah sebelumnya relatif terhadap titik saat ini. Jika tidak ada perintah sebelumnya atau jika perintah sebelumnya bukan kurva Bezier kuadrat atau perintah kurva Bezier kuadrat yang halus, titik kontrol diasumsikan bertepatan dengan titik saat ini.
T 100,30
adalah contoh perintah kurva Bezier kuadrat kuadrat halus yang valid.
Tutup perintah
Perintah tutup mengakhiri gambar saat ini dan membuat garis yang menyambungkan titik saat ini ke titik awal gambar. Oleh karena itu, perintah ini membuat gabungan baris antara segmen terakhir dan segmen pertama gambar.
Sintaks untuk perintah tutup adalah: Z
atau z
.
Nilai tambahan
Alih-alih nilai numerik standar, Anda juga dapat menggunakan nilai khusus peka huruf besar/kecil berikut:
Infinity
double.PositiveInfinity
mewakili .-Infinity
double.NegativeInfinity
mewakili .NaN
double.NaN
mewakili .
Selain itu, Anda juga dapat menggunakan notasi ilmiah yang tidak peka huruf besar/kecil. Oleh karena itu, +1.e17
adalah nilai yang valid.