2011-10-09 22 views
13

Thuộc tính UIElement.Clip mất một đối tượng Geometry và sử dụng nó để cắt bỏ bên ngoài của UIElement. Tôi muốn làm đảo ngược hình học và đục lỗ vào phần tử thay thế.Làm thế nào để đảo ngược hình học cắt trong Silverlight/WPF?

Bất kỳ ai biết cách thực hiện việc này?

Tôi tưởng tượng việc tạo một phiên bản ngược của hình dạng clip sẽ hoạt động, nhưng tôi không thể tìm thấy cách để thực hiện việc này.


EDIT Dường như WPF có Geometry.Combine mà có thể được sử dụng để trừ một hình học từ khác, mặc dù điều này không có sẵn trong Silverlight. Nếu nó được, tôi có thể trừ hình học clip từ hình chữ nhật của hình chữ nhật bounding của phần tử, và sử dụng nó để clip thay thế.

Trả lời

14

Một cách tiếp cận trong Silverlight là sử dụng GeometryGroup và đưa vào nhóm một hình chữ nhật rất lớn bắt đầu từ một vị trí phủ định ở xa.

Ví dụ các hình vuông màu xanh sau có lỗ vuông nhỏ: -

<Rectangle Fill="Blue" HorizontalAlignment="Center" VerticalAlignment="Center" Height="200" Width="200"> 
     <Rectangle.Clip> 
      <GeometryGroup> 
       <RectangleGeometry Rect="-2048 -2048 4096 4096" /> 
       <RectangleGeometry Rect="100 100 50 50" /> 
      </GeometryGroup> 
     </Rectangle.Clip> 
    </Rectangle> 
Các vấn đề liên quan