2009-12-22 33 views
5

Bất cứ ai biết cách tốt để tạo đối tượng này từ Xaml? Nó cũng phải làm việc ở .5 Độ mờ khi xếp chồng lên trên các điều khiển khác.WPF - Trợ giúp Đường dẫn/Hình học - Hình dạng lạ

Nó cũng phải được thay đổi kích thước thông qua Căn chỉnh theo chiều ngang hoặc dọc.

Shape http://monitor.utopiaselfscan.com/test.bmp

Tôi đang gặp một số khó khăn. Gần nhất tôi nhận được là với 2 biên giới, một có lề âm - nhưng nó không hoạt động khi Opacity được áp dụng.

Mã hoạt động:

  <Path Fill="Black"> 
       <Path.Data> 
        <CombinedGeometry GeometryCombineMode="Exclude"> 
         <CombinedGeometry.Geometry1> 
          <RectangleGeometry RadiusX="5" RadiusY="5" Rect="0,0,200,100" /> 
         </CombinedGeometry.Geometry1> 
         <CombinedGeometry.Geometry2> 
          <RectangleGeometry RadiusX="5" RadiusY="5" Rect="105,5,90,90" /> 
         </CombinedGeometry.Geometry2> 
        </CombinedGeometry> 
       </Path.Data> 
      </Path> 
+0

Tôi đã thực hiện điều này thật nhanh chóng trong sơn, phần màu đen phải là 1/2 chiều rộng của đối tượng. – jonathanpeppers

Trả lời

6

Sử dụng một GeometryGroup với một EvenOdd FillRule, hoặc một CombinedGeometry với một GeometryCombineMode của XOR hay Loại trừ. Các hình học để kết hợp cả hai sẽ là đối tượng RectangleGeometry, với RadiusX và RadiusY thích hợp. Kết quả sẽ là hình chữ nhật bên ngoài với một "lỗ" trong đó hình chữ nhật bên trong được đặt. (Tôi cho rằng đây là những gì bạn muốn thay vì một hình chữ nhật màu trắng trong màu đen.)

Sau đó, bạn có thể gán hình dạng tổng hợp này cho Đường dẫn làm thuộc tính Dữ liệu của nó và đặt Fill và Opacity theo yêu cầu.

+0

Đề xuất của bạn hoạt động. Tôi chưa bao giờ sử dụng hình học thô trước đây trong WPF. – jonathanpeppers

Các vấn đề liên quan