2010-07-01 7 views
0

이상한 것이 있습니다. 0.7의 불투명도를 갖는 두 개의 타원이 있습니다. 제가하고 싶은 것은, 두 타원이 교차하고, 다른 색깔을 나타내는 곳입니다. 이전 WF 이미지에서 각 픽셀을 통과하고 색상을 바꿨지 만 Silverlight에서 레이어를 사용하여이 작업을 수행하는 방법을 잘 모르겠습니다. 누구든지 아이디어가 있습니까?두 개의 반투명 타원 합치기

감사합니다.

답변

0

편집 : 죄송합니다. 다양한 요소의 속성에 약간의 오류가있었습니다. 이것은 테스트 된 것입니다 :

을 만들고 Path 요소로 두 개의 EllipseGeometries 자식 요소가있는 GeometryGroup을 넣습니다. GeometryGroup.FillRule을 "EvenOdd"로 설정하여 타원이 채워지는 영역이 채워지지 않도록하고 타원에 표시 할 색 ("AliceBlue")을 "채우기"로 설정하십시오.

테두리를 "배경"속성으로 컨트롤에 넣고 양쪽 타원이 표시되는 영역 (여기서는 노란색)을 원하는 색으로 배경을 설정하십시오.

그런 다음 FillRule이 "Nonzero"로 설정된 동일한 GeometryGroup으로 Clip을 설정하여 타원 주위의 영역 색이 배경색으로 채워지는 것을 방지합니다.

 <Border Background="Yellow"> 
      <Path Fill="AliceBlue" Stroke="Black" StrokeThickness="4"> 
       <Path.Data> 
        <GeometryGroup FillRule="EvenOdd"> 
         <EllipseGeometry Center="100,100" RadiusX="40" RadiusY="80" /> 
         <EllipseGeometry Center="100,100" RadiusX="80" RadiusY="40" /> 
        </GeometryGroup> 
       </Path.Data> 
      </Path> 
      <Border.Clip> 
       <GeometryGroup FillRule="Nonzero"> 
        <EllipseGeometry Center="100,100" RadiusX="40" RadiusY="80" /> 
        <EllipseGeometry Center="100,100" RadiusX="80" RadiusY="40" /> 
       </GeometryGroup> 
      </Border.Clip> 
     </Border> 

당신은 다른 색상으로 페인트 할 두 타원은 하나 EllipseGeometry 개체에 Border.Clip 각각 "EvenOdd"와 같은 GeometryGroup 태그를 사용하여 설정, 두 개의 국경 및 경로 객체를 사용이 필요합니다.

더 자세한 정의가 필요하면 GeometryGroup 대신 PathGeometry을 사용하고 ArcSegments로 영역을 정의하십시오.