2017-02-22 19 views
0

예를 들어 클립 이미지를 타원으로 원합니다. UI 요소에는 Clip이 있지만 Windows 런타임 API의 Clip은 RectangleGeometry 여야합니다.이미지 (UI 요소)를 샘플 지오메트리에 클립하는 방법은 무엇입니까?

How to clip image to ellipse in XAML

을하지만 난 크기 할 수 없습니다 또는 브러시하지 UI 요소이기 때문에, 내 이미지를 이동 : 나는 채우기 브러시로 타원 및 ImageBrush와 요소를 사용하여 동일한 결과를 얻을 수 있습니다. 그럼, 클립 이미지가 rectangicipalometry가 아닌 방법? 예를 들어, 내가 이것을 원한다면 : Move image into ellipse

아마도 UI 요소에 alphamask를 사용할 수 있습니까? 아니면 불투명 마스크? 어쩌면 이것은 win2d에서 가능할 수 있습니까?

답변

0

GeometryGroup으로 모양을 그리고 Path 안에 도형을 그릴 수 있고 모양을 사용하여 이미지에 마스크를 만들 수있는 방법. 모양은 RectangleGeometryEllipseGeometry으로 합성 될 수 있으며 모양은 이미지와 크기가 같아야합니다 (모양 컨트롤의 크기가 이미지 컨트롤이 아닌 이미지 자체와 동일하게 설정되어 있으므로 이미지 컨트롤에 빈 공간이있을 수 있습니다. 이미지의 비율). 경로를 채우면 Ellipse 부분에 이미지가 표시됩니다.

예를 들어, 다음 코드는 다음과 같이

<Grid> 
    <Image Source="Assets/caffe1.jpg" Height="200" Canvas.ZIndex="-1" Width="265"> 
    </Image> 
    <Path Fill="White" Height="200" Width="265"> 
     <Path.Data> 
      <GeometryGroup> 
       <EllipseGeometry Center="100,100" RadiusX="100" RadiusY="100"/> 
       <RectangleGeometry Rect="0,0 265,200" ></RectangleGeometry> 
      </GeometryGroup> 
     </Path.Data> 
    </Path> 
</Grid> 

그리고 결과 :

enter image description here

이 방법은 당신도, 당신이 원하는대로 임의의 모양으로 이미지 클립을 정의 할 수 있습니다 이미지 크기와 클립 크기는 원하는대로 있습니다. 도형을 그리는 방법에 대한 자세한 내용은 this article을 참조하십시오.