2011-01-29 28 views
6

Tôi đang gặp một lỗi lạ với một đối tượng PathGeometry đơn giản và tôi không thể tìm ra nó. Tôi sẽ đánh giá cao nếu ai đó có thể giải thích cho tôi tại sao điều này không hiệu quả.WP7 PathGeometry error

Dưới đây là một ví dụ về một con đường làm việc, trong đó vẽ một hình tam giác nhỏ:

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

Dưới đây là một ví dụ về một con đường mà dường như không làm việc cho tôi:

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

Các chuỗi trong thuộc tính Dữ liệu và Hình giống hệt nhau, nhưng ví dụ sau dẫn đến ngoại lệ:

Giá trị thuộc tính không hợp lệ M 8,4 L 12,12 4,12 8,4 Z cho tài sản Hình.

Điều tôi muốn làm cuối cùng là đặt PathGeometry vào ResourceDictionary và tham chiếu nó dưới dạng một {StaticResource} để tôi có thể sử dụng lại hình dạng của mình.

Edit:

giải pháp của tôi là thay vì cố gắng để tham khảo một PathGeometry với một StaticResource, để thay vào đó tham khảo một nguồn tài nguyên chuỗi.

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

Trả lời

4

Từ những gì tôi có thể biết, cú pháp đánh dấu đường dẫn, được sử dụng bởi Path.Data, không được PathGeometry hỗ trợ. Thuộc tính PathGeometry.Figures phải là tập hợp các đối tượng PathFigure thay thế.

Để xác định hình dạng trên theo cách này, bạn có thể làm một cái gì đó như sau:

<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> 

Disclaimer: Tôi đã không cố gắng này trên WP7, chỉ có trên Silverlight trên máy tính của tôi.

+0

Điều này thực sự hoạt động trên wp7! Đó là tiếc là tiết nhưng một thay thế chấp nhận được. Cảm ơn một tấn. –

+0

Thật không may khi tham khảo một PathGeometry trong Path.Data không hoạt động hoặc vì vậy tôi nghĩ rằng tôi bị mắc kẹt sao chép hình học: -/(ví dụ: ) –

+0

Ok bây giờ tôi cảm thấy ngu ngốc vì nó hoạt động để chỉ tạo một tài nguyên chuỗi và ràng buộc thay vào đó: M 8,4 L 12 12 4 12 8 4 Z ... ugh. –