Yol Biçimlendirme Sözdizimi
Yollar, WPF genel bakış ve geometriyegenel bakış konularında şekiller ve temel çizimde ele alınmıştır, ancak bu konuda Extensible Application Markup Language (XAML) kullanarak yol geometrileri belirlemek 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 hakkında bilgi sahibi olmanız gerekir Geometry . Daha fazla bilgi için bkz. geometriye genel bakış.
StreamGeometry ve PathFigureCollection Mini-Languages
WPF, geometrik yolları açıklamak için mini diller sağlayan iki sınıf sağlar: StreamGeometry ve PathFigureCollection .
StreamGeometryTürünün özelliği Geometry veya bir ClipUIElementData öğenin özelliği gibi bir özelliği ayarlarken mini dili kullanırsınız Path . Aşağıdaki örnek, oluşturmak için öznitelik sözdizimini kullanır StreamGeometry .
<Path Stroke="Black" Fill="Gray" Data="M 10,100 C 10,300 300,-200 300,100" />PathFigureCollectionBir öğesinin özelliğini ayarlarken mini dili kullanın FiguresPathGeometry . Aşağıdaki örnek bir için oluşturmak üzere bir öznitelik söz dizimini kullanır PathFigureCollectionPathGeometry .
<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 de çok benzerdir. ' İ kullanabileceğiniz herhangi bir durumda, PathGeometry hangisini kullanmak zorunda olacak şekilde kullanmak her zaman mümkündür StreamGeometry . Yolu oluşturduktan StreamGeometry sonra değiştirmeniz gerekmiyorsa bir kullanın; PathGeometry yolu değiştirmeniz gerekiyorsa bir kullanın.
Ve nesneleri arasındaki farklılıklar hakkında daha fazla bilgi için PathGeometryStreamGeometry bkz. PathGeometry.
Boşluk hakkında bir göz
Kısaltma 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 gerçekten virgül veya boşluk ile ayrılması gerekmez, ancak bu yalnızca elde edilen dize belirsiz olduğunda yapılabilir. Örneğin, 2..3 aslında iki sayı: "2." ve ". 3". Benzer şekilde, 2-3 "2" ve "-3". Boşluklar, komutlardan önce veya sonra gerekli değildir.
Syntax
Bir için Extensible Application Markup Language (XAML) özniteliği kullanım sözdizimi, StreamGeometry isteğe bağlı bir FillRule değerden ve bir veya daha fazla şekil açıklamalarından oluşur.
| StreamGeometry XAML öznitelik kullanımı |
|---|
<<özelliği [ fillRule ] figureDescription [ figureDescription ] *" ... /> |
İçin Extensible Application Markup Language (XAML) öznitelik kullanım sözdizimi bir PathFigureCollection veya daha fazla şekil açıklamalarından oluşur.
| PathFigureCollection XAML öznitelik kullanımı |
|---|
<<özelliğifigureDescription [ figureDescription ] *" ... /> |
| Süre | Açıklama |
|---|---|
| fillRule | System.Windows.Media.FillRule ' In veya ' nin kullanıp kullanmadığını belirtir StreamGeometryEvenOddNonzeroFillRule . - F0EvenOddFill kuralını belirtir.- F1NonzeroFill kuralını belirtir.Bu komutu atlarsanız, alt yol varsayılan davranışı kullanır EvenOdd . Bu komutu belirtirseniz, önce yerleştirmeniz gerekir. |
| figureDescription | Bir Move komutundan, çizim komutlarından ve isteğe bağlı bir kapatma komutundan oluşan bir şekil.moveCommand drawCommands [ closeCommand ] |
| moveCommand | Şeklin başlangıç noktasını belirten bir Move komutu. Taşıma komut bölümüne bakın. |
| drawCommands | Şekil içeriğini tanımlayan bir veya daha fazla çizim komutu. Çizim komutları bölümüne bakın. |
| closeCommand | Şekli kapatan isteğe bağlı bir kapatma komutu. Kapat komut bölümüne bakın. |
Move komutu
Yeni bir şeklin başlangıç noktasını belirtir.
| Syntax |
|---|
MM- veya - mm |
| Süre | Açıklama |
|---|---|
| startPoint | System.Windows.Point Yeni bir şeklin başlangıç noktası. |
Büyük harf MstartPoint , mutlak bir değer olduğunu gösterir; küçük harf, bir mstartPoint önceki noktaya bir konum olduğunu veya yoksa (0, 0) olduğunu gösterir. Move komutundan sonra birden çok noktayı listeseniz, Line komutunu belirtseniz de bu noktalara bir çizgi çizilir.
Çiz komutları
Çizim komutu birkaç şekil komutundan oluşabilir. Aşağıdaki şekil komutları kullanılabilir: çizgi, yatay çizgi, dikey çizgi, üçüncü dereceden Bezier eğrisi, karesel Bezier eğrisi, pürüzsüz üçüncü dereceden Bezier eğrisi, yumuşak ikinci dereceden Bezier eğrisi ve elips yay.
Her komutu bir büyük harf veya küçük harf kullanarak girersiniz: büyük harfler mutlak değerleri gösterir ve küçük harfler göreli değerleri gösterir: bu segmentin denetim noktaları, önceki örneğin bitiş noktasına göre yapılır. Aynı türde birden fazla komut sıralı olarak girildiğinde, yinelenen komut girişini atlayabilirsiniz; Örneğin, L 100,200 300,400 öğesine eşdeğerdir L 100,200 L 300,400 . Aşağıdaki tabloda, Taşı ve Çiz komutları açıklanmaktadır.
Line 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 l 20 30 komutlarının örnekleridir.
| Syntax |
|---|
LL- veya - ll |
| Süre | Açıklama |
|---|---|
| Bkz | System.Windows.Point Çizginin bitiş noktası. |
Büyük harf LendPoint , mutlak bir değer olduğunu gösterir; küçük harf, bir lendPoint önceki noktaya bir konum olduğunu 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 komutuna bir örnektir.
| Syntax |
|---|
HH- veya - hh |
| Süre | Açıklama |
|---|---|
| x | System.Double Çizginin bitiş noktasının x koordinatı. |
Büyük harf Hx , mutlak bir değer olduğunu gösterir; küçük harf, bir hx önceki noktaya bir konum olduğunu 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 komutuna bir örnektir.
| Syntax |
|---|
VV- veya - vv |
| Süre | Açıklama |
|---|---|
| Y | System.Double Çizginin bitiş noktasının y koordinatı. |
Büyük harf bunun mutlak bir değer olduğunu gösterir; küçük harf, önceki noktaya bir uzaklık olduğunu Vy veya yoksa vy (0,0) olduğunu gösterir.
KükütÜnüer Eğri Komutu
Belirtilen iki denetim noktasını ( 1 ve 2) kullanarak geçerli nokta ile belirtilen uç nokta arasında bir tane tane daha küçük bir Taner controlPointcontrolPoint eğrisi oluşturur. C 100,200 200,400 300,200 geçerli bir eğri komutu örneğidir.
| Syntax |
|---|
CcontrolPoint1 controlPoint 2endPoint- veya - ccontrolPoint1 controlPoint 2endPoint |
| Süre | Açıklama |
|---|---|
controlPoint1 |
System.Windows.Point Eğrinin başlangıç tanjgent'sını belirleyen eğrinin ilk denetim noktası. |
controlPoint2 |
System.Windows.Point Eğrinin ikinci denetim noktası, eğrinin bitiş tanjgent'sını belirler. |
endPoint |
System.Windows.Point Eğrinin çizilen noktası. |
Quadratic Çeyreğier Eğri Komutu
Belirtilen denetim noktasını () kullanarak geçerli nokta ile belirtilen uç nokta arasında bir İkinci dereceden Sonaer eğrisi controlPoint oluşturur. q 100,200 300,200 , geçerli bir kuaratik Çeyreğier eğri komutu örneğidir.
| Syntax |
|---|
Q controlPoint endPoint- veya - q controlPoint endPoint |
| Süre | Açıklama |
|---|---|
controlPoint |
System.Windows.Point Eğrinin başlangıç ve bitiş tanjgent'larını belirleyen eğrinin denetim noktası. |
endPoint |
System.Windows.Point Eğrinin çizilen noktası. |
Sorunsuz küs durumdaKibier eğri komutu
Geçerli nokta ile belirtilen uç nokta arasında bir kükütÜnüc Nokta 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 komut yoksa veya önceki komut, küskün Birİser eğri komutu veya sorunsuz bir küskünTüm Bir Eğri eğrisi komutu yoksa, ilk denetim noktasının geçerli noktayla çakıştığı varsayabilirsiniz. Eğrinin sonunun denetim noktası olan ikinci denetim noktası controlPoint 2 ile belirtilir. Örneğin, geçerli S 100,200 200,300 bir sorunsuz kükütÜnümÜnür eğrisi komutu.
| Syntax |
|---|
ScontrolPoint2endPoint- veya - scontrolPoint2endPoint |
| Süre | Açıklama |
|---|---|
controlPoint2 |
System.Windows.Point Eğrinin bitiş tanjgent'sını belirleyen eğrinin denetim noktası. |
endPoint |
System.Windows.Point Eğrinin çizilen noktası. |
Düz İkinci dereceden Bire bir Eğri Komutu
Geçerli nokta ile belirtilen uç nokta arasında bir İkinci dereceden Sonaer 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. Daha önce komut yoksa veya önceki komut, iki dereceden Bire bir Eğri eğri komutu veya sorunsuz bir İkinci derecedenCir eğri komutu yoksa, denetim noktası geçerli noktayla çakıştır.
| Syntax |
|---|
T endPoint- veya - t endPoint |
| Süre | Açıklama |
|---|---|
endPoint |
System.Windows.Point Eğrinin çizilen noktası. |
Eliptik Arc Komutu
Geçerli nokta ile belirtilen uç nokta arasında üç noktalı bir yay oluşturur.
| Syntax |
|---|
A size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint- veya - a size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint |
| Süre | Açıklama |
|---|---|
size |
System.Windows.Size Yay x ve y yarıçapı. |
rotationAngle |
System.Double Üç noktanın derece olarak döndürmesi. |
isLargeArcFlag |
Yay açısı 180 derece veya daha yüksekse 1 olarak ayarlayın; aksi takdirde, 0 olarak ayarlayın. |
sweepDirectionFlag |
Yay pozitif açı yönünde çizilirse 1 olarak ayarlayın; aksi takdirde, 0 olarak ayarlayın. |
endPoint |
System.Windows.Point Yay çizilen nokta. |
Kapat Komutu
Geçerli şekilde sonlanır ve geçerli noktanın, şekilde başlangıç noktasına bağlanan bir çizgi oluşturur. Bu komut, son segment ile şekildeki ilk segment arasında bir satır birleştirme (köşe) oluşturur.
| Syntax |
|---|
Z- veya - z |
Nokta Söz Dizimi
(0,0) sol üst köşedeki bir noktanın x ve y koordinatlarını açıklar.
| Syntax |
|---|
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/büyük/büyük harfe duyarlıdır.
Sonsuz
temsil Double.PositiveInfinity eder.
-Infinity
temsil Double.NegativeInfinity eder.
NaN
temsil Double.NaN eder.
Bilimsel bir ifade de kullanabilirsiniz. Örneğin, +1.e17 geçerli bir değerdir.