Aracılığıyla paylaş


Taşıma ve çizme komutları söz dizimi

Yol geometrilerini XAML öznitelik değeri olarak belirtmek için kullanabileceğiniz taşıma ve çizme komutları (mini dil) hakkında bilgi edinin. Taşıma ve çizme komutları, bir vektör grafiği veya şeklini serileştirme ve değişim biçimi olarak çıkarabilen birçok tasarım ve grafik aracı tarafından kullanılır.

Taşıma ve çizme komut dizelerini kullanan özellikler

Taşıma ve çizme komut söz dizimi, komutları ayrıştıran ve bir çalışma zamanı grafik gösterimi oluşturan XAML için iç tür dönüştürücüsü tarafından desteklenir. Bu gösterim temelde sunu için hazır olan tamamlanmış bir vektör kümesidir. Vektörlerin kendileri sunum ayrıntılarını tamamlamaz; öğeler üzerinde başka değerler ayarlamanız gerekir. Bir Yol nesnesi için Dolgu, Vuruş ve diğer özellikler için de değerlere ihtiyacınız vardır ve ardından bu Yol görsel ağaca bir şekilde bağlanmalıdır. PathIcon nesnesi için Foreground özelliğini ayarlayın.

Windows Çalışma Zamanı'nda move ve draw komutlarını temsil eden bir dize kullanabilen iki özellik vardır: Path.Data ve PathIcon.Data. Taşıma ve çizim komutlarını belirterek bu özelliklerden birini ayarlarsanız, genellikle bu öğenin diğer gerekli öznitelikleriyle birlikte bir XAML öznitelik değeri olarak ayarlarsınız. Ayrıntılara girmeden şöyle görünür:

<Path x:Name="Arrow" Fill="White" Height="11" Width="9.67"
  Data="M4.12,0 L9.67,5.47 L4.12,10.94 L0,10.88 L5.56,5.47 L0,0.06" />

PathGeometry yerine taşıma ve çizme komutlarını kullanma

Windows Çalışma Zamanı XAML'si için taşıma ve çizme komutları, Şekiller özellik değerine sahip tek bir PathFigure nesnesine sahip bir PathGeometry oluşturur. Her çizim komutu, tek bir PathFigure'unSegmentler koleksiyonunda PathSegment türetilmiş bir sınıf oluşturur, move komutu StartPoint'i değiştirir ve bir close komutu varoluşu IsClosed değerini true olarak ayarlar. Çalışma zamanında Veri değerlerini incelerseniz bu yapıda nesne modeli olarak gezinebilirsiniz.

Temel söz dizimi

Taşıma ve çizim komutlarının söz dizimi şu şekilde özetlenebilir:

  1. İsteğe bağlı bir doldurma kuralıyla başlayın. Bunu genellikle yalnızca EvenOdd varsayılanını istemiyorsanız belirtirsiniz. ( EvenOdd hakkında daha sonra daha fazla bilgi.)
  2. Tam olarak bir taşıma komutu belirtin.
  3. Bir veya daha fazla çizim komutu belirtin.
  4. Bir kapat komutu belirtin. Bir close komutunu atlayabilirsiniz, ancak bu, şeklinizin açık kalmasına neden olur (bu yaygın bir durum değildir).

Bu söz diziminin genel kuralları şunlardır:

  • Her komut tam olarak bir harfle temsil edilir.
  • Bu harf büyük veya küçük harf olabilir. Açıklayacağımız gibi dava önemli.
  • Kapat komutu dışındaki her komut genellikle bir veya daha fazla sayıyla takip edilir.
  • Bir komut için birden fazla sayı varsa, virgül veya boşlukla ayırın.

[fillRule]moveCommanddrawCommand[drawCommand*][closeCommand]

Çizim komutlarının çoğu, x,y değeri sağladığınız noktaları kullanır. Bir *nokta yer tutucusu gördüğünüzde, bir noktanın x,y değeri için iki ondalık değer verdiğinizi varsayabilirsiniz.

Sonuç belirsiz olmadığında boşluk genellikle atlanabilir. Tüm sayı kümeleri (noktalar ve boyut) için ayırıcı olarak virgül kullanıyorsanız, aslında tüm boşlukları atlayabilirsiniz. Örneğin, bu kullanım yasaldır: F1M0,58L2,56L6,60L13,51L15,53L6,64z. Ancak netlik için komutlar arasında boşluk eklemek daha normaldir.

Ondalık sayılar için ondalık ayırıcı olarak virgül kullanmayın; komut dizesi XAML tarafından yorumlanır ve en-us yerel ayarında kullanılan kültüre özgü sayı biçimlendirme kurallarını dikkate almaz, bu nedenle farklı kültürlerdeki biçimlendirmeler tanımlanmaz.

Söz dizimi özellikleri

Doldurma kuralı

İsteğe bağlı doldurma kuralı için iki olası değer vardır: F0 veya F1. ( F her zaman büyük harftir.) F0 varsayılan değerdir; EvenOdd doldurma davranışı üretir, bu nedenle normalde bunu belirtmezsiniz. F1 tuşunu kullanarak Nonzero doldurma davranışını edinin. Bu dolgu değerleri FillRule sabit listesinin değerleriyle hizalanır.

Taşı komutu

Yeni bir şeklin başlangıç noktasını belirtir.

Sözdizimi
M startPoint
- veya -
m startPoint
Süre Description
startPoint Nokta
Yeni bir figürün başlangıç noktası.

Büyük harf M , startPoint'in mutlak bir koordinat olduğunu gösterir; küçük harf m , startPoint'in önceki noktaya uzaklık olduğunu veya önceki bir nokta yoksa (0,0) olduğunu gösterir.

Not Taşıma komutundan sonra birden çok nokta belirtmek yasaldır. Bu noktalara, satır komutunu belirttiğiniz gibi bir çizgi çizilir. Ancak bu önerilen bir stil değildir; bunun yerine ayrılmış satır komutunu kullanın.

Çizim komutları

Çizim komutu çeşitli şekil komutlarından oluşabilir: çizgi, yatay çizgi, dikey çizgi, bezier eğrisinin küpü, ikinci dereceden Bezier eğrisi, pürüzsüz kübik Bezier eğrisi, düz ikinci dereceden Bezier eğrisi ve eliptik yay.

Tüm çizim komutları için büyük/küçük harf önemlidir. Büyük harfler mutlak koordinatları, küçük harfler ise önceki komuta göre koordinatları belirtir.

Bir segmentin denetim noktaları, önceki kesimin 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.

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. LineGeometry nesnesinin eşdeğerini tanımlar.

Sözdizimi
L bitiş noktası
- veya -
l bitiş noktası
Süre Description
bitiş noktası Nokta
Satırın bitiş noktası.

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 Description
x Double
Satırın bitiş noktasının x koordinatı.

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 Description
y Double
Satırın bitiş noktasının y koordinatı.

Kübik Bézier eğrisi komutu

Belirtilen iki denetim noktasını (controlPoint1 ve controlPoint2) kullanarak geçerli nokta ile belirtilen bitiş noktası arasında bir bézier küp eğrisi oluşturur. C 100,200 200,400 300,200 geçerli bir eğri komutu örneğidir. PathGeometry nesnesinin bezierSegment nesnesiyle eşdeğerini tanımlar.

Sözdizimi
C controlPoint1controlPoint2endPoint
-veya-
c controlPoint1controlPoint2endPoint
Süre Description
controlPoint1 Nokta
Eğrinin başlangıç tanjantını belirleyen eğrinin ilk denetim noktası.
controlPoint2 Nokta
Eğrinin bitiş tanjantını belirleyen eğrinin ikinci denetim noktası.
bitiş noktası Nokta
Eğrinin çizildiği nokta.

İkinci dereceden Bézier eğrisi komutu

Belirtilen denetim noktasını (controlPoint) kullanarak geçerli nokta ile belirtilen bitiş noktası arasında ikinci dereceden bir Bézier eğrisi oluşturur. q 100,200 300,200 geçerli bir ikinci dereceden Bézier eğrisi komutu örneğidir. PathGeometry'nin eşdeğerini QuadraticBezierSegment ile tanımlar.

Sözdizimi
Q kontrolNoktası bitişNoktası
-veya-
q kontrolNoktası bitişNoktası
Süre Description
controlPoint Nokta
Eğrinin başlangıç ve bitiş tanjantlarını belirleyen eğrinin denetim noktası.
bitiş noktası Nokta
Eğrinin çizildiği nokta.

Kesintisiz kübik Bézier eğrisi komutu

Geçerli nokta ile belirtilen bitiş noktası arasında bir küp Bézier 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 Bézier eğrisi küp komutu veya düzgün bir Bézier eğrisi kübik komutu değilse, ilk denetim noktasının geçerli noktayla aynı olduğunu varsayalım. İkinci denetim noktası (eğrinin sonunun denetim noktası) controlPoint2 tarafından belirtilir. Örneğin, S 100,200 200,300 geçerli bir düzgün kübik Bézier eğrisi komutudur. Bu komut, önceki eğri segmentinin bulunduğu yerde bir PathGeometry ile bir BezierSegment'in eşdeğerini tanımlar.

Sözdizimi
S controlPoint2endPoint
-veya-
s kontrolNoktası2 bitişNoktası
Süre Description
controlPoint2 Nokta
Eğrinin bitiş tanjantını belirleyen eğrinin denetim noktası.
bitiş noktası Nokta
Eğrinin çizildiği nokta.

Kusursuz ikinci dereceden Bézier eğrisi komutu

Geçerli nokta ile belirtilen bitiş noktası arasında ikinci dereceden bir Bézier 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 Bézier eğrisi komutu veya düz ikinci dereceden Bézier eğrisi komutu değilse, denetim noktası geçerli noktayla çakışır. Bu komut, PathGeometry eşdeğerini, öncesinde bir eğri segmenti bulunan bir QuadraticBezierSegment ile tanımlar.

Sözdizimi
T controlPointendPoint
-veya-
t controlPointendPoint
Süre Description
controlPoint Nokta
Eğrinin başlangıç ve tanjantını belirleyen eğrinin denetim noktası.
bitiş noktası Nokta
Eğrinin çizildiği nokta.

Eliptik yay komutu

Geçerli nokta ile belirtilen bitiş noktası arasında eliptik bir yay oluşturur. ArcSegment ile PathGeometry'nin eşdeğerini tanımlar.

Sözdizimi
A sizerotationAngleisLargeArcFlagsweepDirectionFlagendPoint
-veya-
a sizerotationAngleisLargeArcFlagsweepDirectionFlagendPoint
Süre Description
boyut Boyut
Arkın x yarıçapı ve y yarıçapı.
rotationAngle Double
Elipsin dönüş açısı, derece cinsinden.
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.
bitiş noktası Nokta
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

Bir noktanın x koordinatını ve y koordinatını açıklar. Ayrıca bkz. Nokta.

Sözdizimi
x,y
-veya-
xy
Süre Description
x Double
Noktanın x koordinatı.
y Çift
Noktanın y koordinatı.

Ek notlar

Standart sayısal değer yerine aşağıdaki özel değerleri de kullanabilirsiniz. Bu değerler harf büyüklüğüne duyarlıdır.

  • Sonsuzluk: PositiveInfinity'i temsil eder.
  • -Infinity: NegativeInfinity'i temsil eder.
  • NaN: NaN'i temsil eder.

Ondalık veya tamsayı kullanmak yerine bilimsel gösterimi kullanabilirsiniz. Örneğin, +1.e17 geçerli bir değerdir.

Taşıma ve çizme komutları üreten tasarım araçları

Microsoft Visual Studio 2015 için Blend'de Kalem aracını ve diğer çizim araçlarını kullanmak genellikle taşıma ve çizme komutları içeren bir Path nesnesi oluşturur.

Windows Çalışma Zamanı XAML varsayılan denetim şablonlarında tanımlanan belirli denetim bölümlerinde mevcut taşıma ve çizim komutu verilerini görebilirsiniz. Örneğin, bazı denetimler taşıma ve çizme komutları olarak tanımlanan verileri içeren bir PathIcon kullanır.

XAML biçiminde vektör çıktısı oluşturabilen diğer yaygın kullanılan vektör grafiği tasarım araçları için kullanılabilir olan dışarı aktarıcılar veya eklentiler vardır. Bu öğeler genellikle bir düzen kapsayıcısında, Path nesneleri oluşturur ve Path.Data için taşıma ve çizim komutlarını içerir. Farklı fırçaların uygulanabilmesi için XAML'de birden çok Yol öğesi olabilir. Bu ihracatçıların veya eklentilerin çoğu başlangıçta Windows Presentation Foundation (WPF) XAML veya Silverlight için yazılmıştır, ancak XAML yolu söz dizimi Windows Runtime XAML ile aynıdır. Genellikle, bir dışarı aktarıcının XAML öbeklerini kullanabilir ve bunları doğrudan bir Windows Çalışma Zamanı XAML sayfasına yapıştırabilirsiniz. (Ancak, dönüştürülen XAML'nin bir parçasıysa RadialGradientBrush kullanamazsınız çünkü Windows Çalışma Zamanı XAML bu fırçayı desteklemez.)