Xamarin.Forms Şekiller: Yol işaretleme söz dizimi
Xamarin.Forms yol işaretleme söz dizimi, XAML'de yol geometrilerini kısa bir şekilde belirtmenizi sağlar. Söz dizimi, özelliğine Path.Data
bir dize değeri olarak belirtilir:
<Path Stroke="Black"
Data="M13.908992,16.207977 L32.000049,16.207977 32.000049,31.999985 13.908992,30.109983Z" />
Yol işaretleme söz dizimi isteğe bağlı FillRule
bir değerden ve bir veya daha fazla şekil açıklamasından oluşur. Bu söz dizimi şu şekilde ifade edilebilir: <Path Data="
[fillRule] figureDescription [figureDescription] * " ... />
Bu sözdiziminde:
- fillRule, geometrinin veya
Nonzero
FillRule
kullanıp kullanmayacağınıEvenOdd
belirten isteğe bağlıXamarin.Forms.Shapes.FillRule
bir seçenektir.F0
, doldurma kuralını belirtmekEvenOdd
için kullanılırkenF1
, doldurma kuralını belirtmekNonzero
için kullanılır. Doldurma kuralları hakkında daha fazla bilgi için bkz Xamarin.Forms . Şekiller: Doldurma kuralları. - figureDescription , taşıma komutu, çizim komutları ve isteğe bağlı kapatma komutundan oluşan bir şekli temsil eder. Move komutu, şeklin başlangıç noktasını belirtir. Çizim komutları, şeklin içeriğini açıklar ve isteğe bağlı kapat komutu da şekli kapatır.
Yukarıdaki örnekte yol işaretleme söz dizimi, move komutunu ()M
kullanarak bir başlangıç noktası, satır komutunu ()L
kullanan bir dizi düz çizgi belirtir ve yolu kapat komutuyla (Z
) kapatır.
Yol işaretleme söz diziminde, komutlar öncesinde veya sonrasında boşluklar gerekli değildir. Buna ek olarak, iki sayının virgül veya boşlukla ayrılması gerekmez, ancak bu yalnızca dize belirsiz olduğunda gerçekleştirilebilir.
İpucu
Yol işaretleme söz dizimi Ölçeklenebilir Vektör Grafikleri (SVG) görüntü yolu tanımlarıyla uyumludur ve bu nedenle grafikleri SVG biçiminden taşımada yararlı olabilir.
Yol işaretleme söz dizimi XAML'de kullanıma yönelik olsa da, sınıfındaki yöntemi çağrılarak koddaki PathGeometryConverter
bir Geometry
nesneye ConvertFromInvariantString
dönüştürülebilir:
Geometry pathData = (Geometry)new PathGeometryConverter().ConvertFromInvariantString("M13.908992,16.207977 L32.000049,16.207977 32.000049,31.999985 13.908992,30.109983Z");
Taşı komutu
Move komutu yeni bir şeklin başlangıç noktasını belirtir. Bu komutun söz dizimi: M
startPoint veya m
startPoint.
Bu söz diziminde startPoint, yeni bir Point
şeklin başlangıç noktasını belirten bir yapıdır. Taşı komutundan sonra birden çok noktayı listelerseniz, bu noktalara bir çizgi çizilir.
M 10,10
geçerli bir taşıma komutu örneğidir.
Çizim komutları
Çizim komutu birkaç şekil komutundan oluşabilir. Aşağıdaki çizim komutları kullanılabilir:
- Satır (
L
veyal
). - Yatay çizgi (
H
veyah
). - Dikey çizgi (
V
veyav
). - Eliptik yay (
A
veyaa
). - Bezier eğrisinin (
C
veyac
) küp - İkinci dereceden Bezier eğrisi (
Q
veyaq
). - Kesintisiz kübik Bezier eğrisi (
S
veyas
). - Düz ikinci dereceden Bezier eğrisi (
T
veyat
).
Her draw komutu büyük/küçük harfe duyarsız bir harfle belirtilir. Aynı türdeki birden fazla komutu sırayla girerken, yinelenen komut girdisini atlayabilirsiniz. Örneğin L 100,200 300,400
, ile L 100,200 L 300,400
eşdeğerdir.
Satır komutu
Line komutu geçerli nokta ile belirtilen bitiş noktası arasında düz bir çizgi oluşturur. Bu komutun söz dizimi: L
endPoint veya l
endPoint.
Bu söz diziminde endPoint, satırın bitiş noktasını temsil eden bir Point
noktadır.
L 20,30
ve L 20 30
geçerli satır komutlarının örnekleridir.
Nesne olarak PathGeometry
düz çizgi oluşturma hakkında bilgi için bkz . LineSegment oluşturma.
Yatay çizgi komutu
Yatay çizgi komutu, geçerli nokta ile belirtilen x koordinatı arasında yatay bir çizgi oluşturur. Bu komutun söz dizimi: H
x veya h
x.
Bu söz diziminde x, satırın bitiş noktasının x koordinatını temsil eden bir double
ifadedir.
H 90
geçerli bir yatay çizgi komutu örneğidir.
Dikey çizgi komutu
Dikey çizgi komutu, geçerli nokta ile belirtilen y koordinatı arasında dikey bir çizgi oluşturur. Bu komutun söz dizimi: V
y veya v
y.
Bu söz diziminde y, satırın bitiş noktasının y koordinatını temsil eden bir double
ifadedir.
V 90
geçerli bir dikey çizgi komutu örneğidir.
Eliptik yay komutu
Eliptik yay komutu, geçerli nokta ile belirtilen bitiş noktası arasında bir eliptik yay oluşturur. Bu komutun söz dizimi şöyledir: A
size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint veya a
size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint.
Bu sözdiziminde:
size
, arkın x ve y yarıçapını temsil eden birSize
ifadedir.rotationAngle
, üç noktanın döndürmesini derece cinsinden temsil eden birdouble
değerdir.isLargeArcFlag
yay açısı 180 derece veya daha büyükse 1 olarak ayarlanmalıdır, aksi takdirde 0 olarak ayarlanmalıdır.sweepDirectionFlag
yay pozitif açı yönünde çizilmişse 1 olarak ayarlanmalıdır, aksi takdirde 0 olarak ayarlanmalıdır.endPoint
, arkın çizildiği birPoint
yerdir.
A 150,150 0 1,0 150,-150
geçerli bir eliptik yay komutu örneğidir.
Nesne olarak PathGeometry
eliptik yay oluşturma hakkında bilgi için bkz . ArcSegment oluşturma.
Bezier eğrisi küp komutu
Bezier eğrisi küp komutu, belirtilen iki denetim noktasını kullanarak geçerli nokta ile belirtilen bitiş noktası arasında bir küp Bezier eğrisi oluşturur. Bu komutun söz dizimi: C
controlPoint1 controlPoint2 endPoint veya c
controlPoint1 controlPoint2 endPoint.
Bu sözdiziminde:
- controlPoint1 , eğrinin ilk denetim noktasını temsil eden ve eğrinin başlangıç tanjantını belirleyen bir
Point
denetim noktasıdır. - controlPoint2 , eğrinin bitiş tanjantını belirleyen, eğrinin ikinci denetim noktasını temsil eden bir
Point
tablodur. - endPoint , eğrinin çizildiği noktayı temsil eden bir
Point
noktadır.
C 100,200 200,400 300,200
geçerli bir kübik Bezier eğrisi komutu örneğidir.
Nesne olarak PathGeometry
kübik Bezier eğrisi oluşturma hakkında bilgi için bkz . BezierSegment oluşturma.
İkinci dereceden Bezier eğrisi komutu
İkinci dereceden Bezier eğrisi komutu, belirtilen denetim noktasını kullanarak geçerli nokta ile belirtilen bitiş noktası arasında ikinci dereceden bezier eğrisi oluşturur. Bu komutun söz dizimi: Q
controlPoint endPoint veya q
controlPoint endPoint.
Bu sözdiziminde:
- controlPoint , eğrinin başlangıç ve bitiş tanjantlarını belirleyen eğrinin denetim noktasını temsil eden bir
Point
öğedir. - endPoint , eğrinin çizildiği noktayı temsil eden bir
Point
noktadır.
Q 100,200 300,200
geçerli ikinci dereceden Bezier eğrisi komutunun bir örneğidir.
Nesne olarak PathGeometry
ikinci dereceden Bezier eğrisi oluşturma hakkında bilgi için bkz . QuadraticBezierSegment oluşturma.
Kesintisiz kübik Bezier eğrisi komutu
Kesintisiz kübik Bezier eğrisi komutu, belirtilen denetim noktasını kullanarak geçerli nokta ile belirtilen bitiş noktası arasında bir küp Bezier eğrisi oluşturur. Bu komutun söz dizimi: S
controlPoint2 endPoint veya s
controlPoint2 endPoint.
Bu sözdiziminde:
- controlPoint2 , eğrinin bitiş tanjantını belirleyen, eğrinin ikinci denetim noktasını temsil eden bir
Point
tablodur. - endPoint , eğrinin çizildiği noktayı temsil eden bir
Point
noktadır.
İlk denetim noktasının, geçerli noktaya göre önceki komutun ikinci denetim noktasının yansıması olduğu varsayılır. Önceki bir komut yoksa veya önceki komut bir kübik Bezier eğrisi komutu veya düz kübik Bezier eğrisi komutu değilse, ilk denetim noktasının geçerli noktayla aynı olduğu varsayılır.
S 100,200 200,300
geçerli bir kesintisiz kübik Bezier eğrisi komutu örneğidir.
Düz ikinci dereceden Bezier eğrisi komutu
Düz ikinci dereceden Bezier eğrisi komutu, bir denetim noktası kullanarak geçerli nokta ile belirtilen bitiş noktası arasında ikinci dereceden bezier eğrisi oluşturur. Bu komutun söz dizimi: T
endPoint veya t
endPoint.
Bu söz diziminde endPoint, eğrinin çizildiği noktayı temsil eden bir Point
noktadır.
Denetim noktasının, geçerli noktaya göre önceki komutun denetim noktasının yansıması olduğu varsayılır. Önceki komut yoksa veya önceki komut ikinci dereceden Bezier eğrisi veya düz ikinci dereceden Bezier eğrisi komutu değilse, denetim noktasının geçerli noktayla aynı olduğu varsayılır.
T 100,30
geçerli bir düz ikinci dereceden kübik Bezier eğrisi komutu örneğidir.
Kapat komutu
Kapat komutu geçerli şekli sonlandırır ve geçerli noktayı şeklin başlangıç noktasına bağlayan bir çizgi oluşturur. Bu nedenle, bu komut son kesim ile şeklin ilk kesimi arasında bir satır birleştirme oluşturur.
Kapat komutunun söz dizimi şöyledir: Z
veya z
.
Ek değerler
Standart sayısal değer yerine aşağıdaki büyük/küçük harfe duyarlı özel değerleri de kullanabilirsiniz:
Infinity
öğesini temsil ederdouble.PositiveInfinity
.-Infinity
öğesini temsil ederdouble.NegativeInfinity
.NaN
öğesini temsil ederdouble.NaN
.
Ayrıca büyük/küçük harfe duyarsız bilimsel gösterimi de kullanabilirsiniz. Bu nedenle geçerli +1.e17
bir değerdir.