Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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-Languages
WPF, geometrik yolları tanımlamak için mini diller sağlayan iki sınıf sağlar: StreamGeometry ve PathFigureCollection.
StreamGeometry mini dilini, bir Geometry'ün Clip özelliği veya bir UIElement öğesinin Data özelliği gibi Path türünde bir özelliği ayarlarken 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" />PathFigureCollection mini dilini, bir Figures'nin PathGeometry özelliğini ayarlarken kullanırsınız. Aşağıdaki örnekte, bir PathFigureCollection oluşturmak için PathGeometry bir ö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. Herhangi bir durumda PathGeometry kullanabileceğiniz gibi StreamGeometry de kullanabilirsiniz; bu yüzden 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. StreamGeometry.
Beyaz 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]* " ... /> |
Bir PathFigureCollection için Genişletilebilir Uygulama Biçimlendirme Dili (XAML) özniteliği kullanım söz dizimi, bir veya birden fazla figür tanımından oluşur.
| PathFigureCollection XAML Öznitelik Kullanımı |
|---|
<
nesneözelliği="figureDescription[ figureDescription]* " ... /> |
| Süre | Açıklama |
|---|---|
| fillRule | System.Windows.Media.FillRule öğesinin StreamGeometry veya EvenOddNonzerokullanıp FillRule 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 konumlandırmanız 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. |
| kapatKomutu | Figürü kapatacak 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 |
|---|
| startPoint -veya- 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.
Tavsiye
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.
| Sözdizimi |
|---|
| endPoint -veya- endPoint |
| 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ı (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 |
|---|
C
controlPoint1controlPoint2endPoint-veya- c
controlPoint1controlPoint2endPoint |
| Süre | Açıklama |
|---|---|
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 bir ikinci dereceden Bezier eğrisi komutunun ö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 controlPointbelirtilir. Örneğin, S 100,200 200,300 geçerli bir kesintisiz kübik Bezier eğrisi komutudur.
| Sözdizimi |
|---|
S
controlPoint2endPoint-veya- s
controlPoint2endPoint |
| Süre | Açıklama |
|---|---|
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 olan nokta ile belirtilen bitiş noktası arasında bir kuadratik 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 Elipsin dönüşü, derece olarak. |
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. |
Kapatma 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özdizimi
(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.
Double.PositiveInfinity sonsuzluğu temsil eder.
-Infinity Double.NegativeInfinity temsil ediyor.
NaN temsil eder Double.NaN.
Bilimsel gösterim biçimini de kullanabilirsiniz. Örneğin, +1.e17 geçerli bir değerdir.
Ayrıca bakınız
.NET Desktop feedback