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.

Ön koş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 UIElementDataPath ö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ı
<objectproperty="[ 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ı
<objectözelliği="figureDescription[ figureDescription]* " ... />
Süre Tanım
Fillrule System.Windows.Media.FillRule

öğesinin StreamGeometry veya NonzeroFillRulekullanıp EvenOdd kullanmadığını belirtir.

- F0EvenOdd doldurma kuralını belirtir.
- F1Nonzero 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
MstartPoint

- veya -

mstartPoint
Süre Tanım
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. 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,400eşdeğerdir. Aşağıdaki tabloda taşıma ve çizme komutları açıklanmaktadır.

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
LBitiş noktası

- veya -

lBitiş noktası
Süre Tanım
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
HX

- veya -

hX
Süre Tanım
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
VY

- veya -

vY
Süre Tanım
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ı (controlPoint1 ve controlPoint2) 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
CcontrolPoint1controlPoint2endPoint

- veya -

ccontrolPoint1controlPoint2endPoint
Süre Tanım
controlPoint1 System.Windows.Point

Eğrinin başlangıç tanjantını belirleyen eğrinin ilk denetim noktası.
controlPoint2 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 Tanım
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 controlPointbelirtilir. Örneğin, S 100,200 200,300 geçerli bir kesintisiz kübik Bezier eğrisi komutudur.

Sözdizimi
ScontrolPoint2endPoint

- veya -

scontrolPoint2endPoint
Süre Tanım
controlPoint2 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 Tanım
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 Tanım
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 Tanım
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.

-Sonsuz -luk
öğ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.