2011-01-29 16 views
6

Basit bir PathGeometry nesnesiyle garip bir hata yaşıyorum ve bunu anlayamıyorum. Birisi bana bunun neden işe yaramadığını açıklayabilirse memnun olurum. İşte WP7 YolGeometri hatası

<Path Data="M 8,4 L 12,12 4,12 8,4 Z" Stroke="White" /> 

benim için çalışmaya görünmüyor bir yolu örneğidir: Burada

küçük üçgen çizer bir çalışma Path, bir örnektir

<Path Stroke="White"> 
    <Path.Data> 
     <PathGeometry Figures="M 8,4 L 12,12 4,12 8,4 Z" /> 
    </Path.Data> 
</Path> 

Veri ve Şekil öznitelikleri içindeki dize özdeştir, ancak ikinci örnek istisna olarak sonuçlanır:

Geçersiz öznitelik değeri M 8,4 L 12,12 4,12 8,4 M özellikli şekiller için. Ben sonuçta yapmak istiyorum ne

bir ResourceDictionary içine PathGeometry koymak ve bir {StaticResource} olarak başvurmak yüzden benim şekiller yeniden kullanabilirsiniz etmektir.

Düzenleme:

Çözümümün yerine yerine bir dize kaynağı referans göstermek, bir StaticResource ile PathGeometry başvurmak için çalışmakla oldu. Ben, yol işaretleme sözdizimi söyleyebileceğim

<sys:String x:Key="TriangleShape">M 8,4 L 12,12 4,12 8,4 Z</sys:String> 
... 
<Path Data={StaticResource TriangleShape}" /> 

cevap

4

, Path.Data tarafından kullanıldığı gibi, PathGeometry'nin tarafından desteklenmemektedir. PathGeometry.Figures özelliğinin, bunun yerine PathFigure nesnelerinin bir koleksiyonu olması gerekir.

aşağıdaki gibi bir şey yapabileceğini, bu şekilde yukarıdaki şekil belirlemek için:

<Path Stroke="White"> 
     <Path.Data> 
      <PathGeometry> 
       <PathGeometry.Figures> 
        <PathFigure StartPoint="8,4"> 
         <PathFigure.Segments> 
          <LineSegment Point="12,12" /> 
          <LineSegment Point="4,12" /> 
          <LineSegment Point="8,4" /> 
         </PathFigure.Segments> 
        </PathFigure> 
       </PathGeometry.Figures> 
      </PathGeometry> 
     </Path.Data> 
    </Path> 

Destek benim PC'de sadece Silverlight'a, WP7 bu denemedim.

+0

Bu gerçekten wp7 üzerinde çalışıyor! Ne yazık ki verbose ama kabul edilebilir bir alternatif. Bir ton teşekkürler. –

+0

Ne yazık ki Path.Data'daki bir PathGeometry'ye başvurmak işe yaramıyor, bu yüzden Geometry: -/(örn. ) –

+0

Artık kendimi aptal gibi hissediyorum. sadece bir dize kaynağı yapmak ve bunu bağlamak için çalışır: M 8,4 L 12 12 4 12 8 4 Z ... ugh. –