Yol Biçimlendirme Sözdizimi
Yollar WPF Genel Bakış ve Geometriye Genel Bakış'ta Şekiller ve Temel Çizim'de ele alınmıştır, ancak bu konu başlığında Genişletilebilir Uygulama İşaretlemeyi Dili (XAML) kullanarak yol geometrilerini daha kompakt bir şekilde belirtmek için kullanabileceğiniz güçlü ve karmaşık mini dil ayrıntılı olarak açıklanmaktadır.
Önkoşullar
Bu konuyu anlamak için nesnelerin temel özellikleri Geometry hakkında bilgi sahibi olmanız gerekir. Daha fazla bilgi için bkz. Geometriye Genel Bakış.
StreamGeometry ve PathFigureCollection Mini Dilleri
WPF, geometrik yolları tanımlamak için mini diller sağlayan iki sınıf sağlar: StreamGeometry ve PathFigureCollection.
bir veya öğesinin StreamGeometry özelliği gibi Clip türündeki Geometrybir UIElement Data Path özelliği ayarlarken mini dili kullanırsınız. Aşağıdaki örnek, bir StreamGeometryoluşturmak için öznitelik söz dizimini kullanır.
<Path Stroke="Black" Fill="Gray" Data="M 10,100 C 10,300 300,-200 300,100" />
özelliğini PathGeometryayarlarken Figures mini dili kullanırsınızPathFigureCollection. Aşağıdaki örnekte, için bir oluşturmak PathFigureCollection üzere PathGeometryöznitelik söz dizimi kullanılır.
<Path Stroke="Black" Fill="Gray"> <Path.Data> <PathGeometry Figures="M 10,100 C 10,300 300,-200 300,100" /> </Path.Data> </Path>
Yukarıdaki örneklerden görebileceğiniz gibi iki mini dil birbirine çok benzer. her zaman kullanabileceğiniz StreamGeometryherhangi bir durumda bir kullanmak PathGeometry mümkündür; bu nedenle hangisini kullanmalısınız? StreamGeometry Oluşturduktan sonra yolu değiştirmeniz gerekmeyen bir zaman kullanın; yolu değiştirmeniz gerekiyorsa kullanınPathGeometry.
ve nesneleri arasındaki PathGeometry farklar hakkında daha fazla bilgi için bkz. Geometriye Genel Bakış.StreamGeometry
Boşlukla ilgili bir not
Kısa olması için, izleyen söz dizimi bölümlerinde tek bir boşluk gösterilir, ancak tek bir boşluk gösterildiğinde birden çok boşluk da kabul edilebilir.
İki sayının aslında virgül veya boşlukla ayrılması gerekmez, ancak bu yalnızca sonuçta elde edilen dize belirsiz olduğunda yapılabilir. Örneğin, 2..3
aslında iki sayıdır: "2." ve ".3". Benzer şekilde, 2-3
"2" ve "-3" şeklindedir. Komutlardan önce veya sonra boşluklar da gerekmez.
Sözdizimi
için StreamGeometry Genişletilebilir Uygulama Biçimlendirme Dili (XAML) özniteliği kullanım söz dizimi, isteğe bağlı FillRule bir değerden ve bir veya daha fazla şekil açıklamasından oluşur.
StreamGeometry XAML Öznitelik Kullanımı |
---|
< nesne property =" [ fillRule ] figureDescription [ figureDescription ]*" ... /> |
için Genişletilebilir Uygulama Biçimlendirme Dili (XAML) özniteliği kullanım söz dizimi bir PathFigureCollection veya daha fazla şekil açıklamasından oluşur.
PathFigureCollection XAML Öznitelik Kullanımı |
---|
< nesne property =" figureDescription [ figureDescription ]*" ... /> |
Süre | Açıklama |
---|---|
fillRule | System.Windows.Media.FillRule öğesinin StreamGeometry veya NonzeroFillRulekullanıp EvenOdd kullanmadığını belirtir. - F0 EvenOdd doldurma kuralını belirtir.- F1 Nonzero doldurma kuralını belirtir.Bu komutu atlarsanız, alt yol varsayılan davranışı (olan EvenOdd) kullanır. Bu komutu belirtirseniz, önce bunu yerleştirmeniz gerekir. |
figureDescription | Taşıma komutu, çizim komutları ve isteğe bağlı kapatma komutundan oluşan bir şekil.moveCommand drawCommands [ closeCommand ] |
moveCommand | Şeklin başlangıç noktasını belirten move komutu. Taşıma Komutu bölümüne bakın. |
drawCommands | Şeklin içeriğini açıklayan bir veya daha fazla çizim komutu. Çizim Komutları bölümüne bakın. |
closeCommand | Şekli kapatan isteğe bağlı bir kapatma komutu. Komutu Kapat bölümüne bakın. |
Taşı Komutu
Yeni bir şeklin başlangıç noktasını belirtir.
Sözdizimi |
---|
M startPoint- veya - m startPoint |
Süre | Açıklama |
---|---|
startPoint | System.Windows.Point Yeni bir şeklin başlangıç noktası. |
Büyük harf M
bunun mutlak bir değer olduğunu startPoint
, küçük m
harf ise önceki noktaya uzaklık olduğunu startPoint
veya yoksa (0,0) olduğunu gösterir. Taşıma komutundan sonra birden çok noktayı listelerseniz, satır komutunu belirtmiş olsanız da bu noktalara bir çizgi çizilir.
Çizim Komutları
Çizim komutu birkaç şekil komutundan oluşabilir. Aşağıdaki şekil komutları kullanılabilir: çizgi, yatay çizgi, dikey çizgi, bezier eğrisinin küpü, ikinci dereceden Bezier eğrisi, düz küp Bezier eğrisi, düz ikinci dereceden Bezier eğrisi ve eliptik yay.
Her komutu büyük harf veya küçük harf kullanarak girersiniz: mutlak değerleri belirten büyük harfler ve göreli değerleri belirten küçük harfler: bu kesimin denetim noktaları önceki örneğin bitiş noktasına göredir.
İpucu
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
Geçerli nokta ile belirtilen bitiş noktası arasında düz bir çizgi oluşturur. l 20 30
ve L 20,30
geçerli satır komutlarının örnekleridir.
Sözdizimi |
---|
L bitiş noktası- veya - l bitiş noktası |
Süre | Açıklama |
---|---|
bitiş noktası | System.Windows.Point Satırın bitiş noktası. |
Büyük harf L
bunun mutlak bir değer olduğunu endPoint
, küçük l
harf ise önceki noktaya uzaklık olduğunu endPoint
veya yoksa (0,0) olduğunu gösterir.
Yatay Çizgi Komutu
Geçerli nokta ile belirtilen x koordinatı arasında yatay bir çizgi oluşturur. H 90
geçerli bir yatay çizgi komutu örneğidir.
Sözdizimi |
---|
H x- veya - h x |
Süre | Açıklama |
---|---|
x | System.Double Satırın bitiş noktasının x koordinatı. |
Büyük harf H
bunun mutlak bir değer olduğunu x
, küçük h
harf ise önceki noktaya uzaklık olduğunu x
veya yoksa (0,0) olduğunu gösterir.
Dikey Çizgi Komutu
Geçerli nokta ile belirtilen y koordinatı arasında dikey bir çizgi oluşturur. v 90
geçerli bir dikey çizgi komutu örneğidir.
Sözdizimi |
---|
V y- veya - v y |
Süre | Açıklama |
---|---|
y | System.Double Satırın bitiş noktasının y koordinatı. |
Büyük harf V
bunun mutlak bir değer olduğunu y
, küçük v
harf ise önceki noktaya uzaklık olduğunu y
veya yoksa (0,0) olduğunu gösterir.
Bezier Eğrisi Küp Komutu
Belirtilen iki denetim noktasını (controlPoint
1 ve controlPoint
2) kullanarak geçerli nokta ile belirtilen bitiş noktası arasında bir küp Bezier eğrisi oluşturur. C 100,200 200,400 300,200
geçerli bir eğri komutu örneğidir.
Sözdizimi |
---|
C controlPoint 1controlPoint 2endPoint - veya - c controlPoint 1controlPoint 2endPoint |
Süre | Açıklama |
---|---|
controlPoint 1 |
System.Windows.Point Eğrinin başlangıç tanjantını belirleyen eğrinin ilk denetim noktası. |
controlPoint 2 |
System.Windows.Point Eğrinin bitiş tanjantını belirleyen eğrinin ikinci denetim noktası. |
endPoint |
System.Windows.Point Eğrinin çizildiği nokta. |
İkinci Dereceden Bezier Eğrisi Komutu
Belirtilen denetim noktasını (controlPoint
) kullanarak geçerli nokta ile belirtilen bitiş noktası arasında ikinci dereceden bezier eğrisi oluşturur. q 100,200 300,200
geçerli ikinci dereceden Bezier eğrisi komutunun bir örneğidir.
Sözdizimi |
---|
Q controlPoint endPoint - veya - q controlPoint endPoint |
Süre | Açıklama |
---|---|
controlPoint |
System.Windows.Point Eğrinin başlangıç ve bitiş tanjantlarını belirleyen eğrinin denetim noktası. |
endPoint |
System.Windows.Point Eğrinin çizildiği nokta. |
Kesintisiz kübik Bezier eğrisi Komutu
Geçerli nokta ile belirtilen bitiş noktası arasında bir küp Bezier eğrisi oluşturur. İ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 bezier eğrisi küp komutu veya düz kübik Bezier eğrisi komutu değilse, ilk denetim noktasının geçerli noktayla aynı olduğunu varsayalım. eğrinin sonu için denetim noktası olan ikinci denetim noktası 2 tarafından controlPoint
belirtilir. Örneğin, S 100,200 200,300
geçerli bir kesintisiz kübik Bezier eğrisi komutudur.
Sözdizimi |
---|
S controlPoint 2endPoint - veya - s controlPoint 2endPoint |
Süre | Açıklama |
---|---|
controlPoint 2 |
System.Windows.Point Eğrinin bitiş tanjantını belirleyen eğrinin denetim noktası. |
endPoint |
System.Windows.Point Eğrinin çizildiği nokta. |
Düz ikinci dereceden Bezier eğrisi Komutu
Geçerli nokta ile belirtilen bitiş noktası arasında ikinci dereceden bezier eğrisi oluşturur. Denetim noktasının, geçerli noktaya göre önceki komutun denetim noktasının yansıması olduğu varsayılır. Önceki bir komut yoksa veya önceki komut ikinci dereceden Bezier eğrisi komutu veya düz ikinci dereceden Bezier eğrisi komutu değilse, denetim noktası geçerli noktayla çakışır.
Sözdizimi |
---|
T endPoint - veya - t endPoint |
Süre | Açıklama |
---|---|
endPoint |
System.Windows.Point Eğrinin çizildiği nokta. |
Eliptik Yay Komutu
Geçerli nokta ile belirtilen bitiş noktası arasında eliptik bir yay oluşturur.
Sözdizimi |
---|
A size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint - veya - a size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint |
Süre | Açıklama |
---|---|
size |
System.Windows.Size Arkın x ve y yarıçapı. |
rotationAngle |
System.Double Üç noktanın derece olarak dönmesi. |
isLargeArcFlag |
Yay açısının 180 derece veya daha büyük olması gerekiyorsa 1 olarak ayarlayın; aksi takdirde 0 olarak ayarlayın. |
sweepDirectionFlag |
Yay pozitif açı yönünde çizilmişse 1 olarak ayarlayın; aksi takdirde 0 olarak ayarlayın. |
endPoint |
System.Windows.Point Yay çizildiği nokta. |
Kapat komutu
Geçerli şekli sonlandırır ve geçerli noktayı şeklin başlangıç noktasına bağlayan bir çizgi oluşturur. Bu komut, şeklin son kesimiyle ilk kesimi arasında bir satır birleştirme (köşe) oluşturur.
Sözdizimi |
---|
Z - veya - z |
Nokta Söz Dizimi
(0,0) sol üst köşe olan bir noktanın x ve y koordinatlarını açıklar.
Sözdizimi |
---|
x , y - veya - x y |
Süre | Açıklama |
---|---|
x |
System.Double Noktanın x koordinatı. |
y |
System.Double Noktanın y koordinatı. |
Özel Değerler
Standart sayısal değer yerine aşağıdaki özel değerleri de kullanabilirsiniz. Bu değerler büyük/küçük harfe duyarlıdır.
Infinity
öğesini temsil eder Double.PositiveInfinity.
-Sonsuzluk
öğesini temsil eder Double.NegativeInfinity.
NaN
öğesini temsil eder Double.NaN.
Bilimsel gösterimi de kullanabilirsiniz. Örneğin, +1.e17
geçerli bir değerdir.
Ayrıca bkz.
.NET Desktop feedback