2010-05-27 4 views
3

그리드 컨트롤 내에서 원으로 4 : 3 이미지를 잘라내려고합니다.원과 함께 WPF에서 4 : 3 이미지를 자르십시오.

중간에서 완벽한 원으로 이미지를 드러내려면 원형 클립이 필요합니다. 아래를 참조하십시오.

alt text http://www.cse.unsw.edu.au/~vjro855/Untitled.png

원 동적 이미지 크기를 다시한다.

Canvas.Clip 및 Ellipse + VisualBrush를 올바른 동작을하지 않고 시도했습니다.

감사합니다.

답변

3

해결했습니다.

해결 방법은 Grid.Clip 속성의 일부로 변환기를 사용하는 것이 었습니다. 다음 사이트에서 코드를 사용했습니다.

http://blogorama.nerdworks.in/entry-CenteringelementsonacanvasinWP.aspx

I가 발생 도전은 대신 EllipseEllipseGeometry를 사용하지되었다. EllipseGeometryradiusx,ycenter 사용하는 동안

Ellipseheightwidth를 사용합니다.

Ellipse 나는 필요한 클립을 얻으려고 이미지 높이에 너비와 너비를 설정했을 수 있습니다.

표현식이 즉 바인딩 작업을하면 훨씬 간단합니다.

<Grid> 

    <Grid.Clip> 

     <EllipseGeometry> 
      <EllipseGeometry.RadiusX> 
       <MultiBinding 
        Converter="{StaticResource HalfValue1}"> 
        <Binding 
         ElementName="vemap" 
         Path="ActualHeight" /> 
       </MultiBinding> 
      </EllipseGeometry.RadiusX> 
      <EllipseGeometry.RadiusY> 
       <MultiBinding 
        Converter="{StaticResource HalfValue1}"> 
        <Binding 
         ElementName="vemap" 
         Path="ActualHeight" /> 
       </MultiBinding> 
      </EllipseGeometry.RadiusY> 
      <EllipseGeometry.Center> 
       <MultiBinding 
        Converter="{StaticResource HalfValue}"> 
        <Binding 
         ElementName="vemap" 
         Path="ActualHeight" /> 
        <Binding 
         ElementName="vemap" 
         Path="ActualWidth" /> 
       </MultiBinding> 
      </EllipseGeometry.Center> 
     </EllipseGeometry> 

    </Grid.Clip>  

    <Image> 

</Grid> 
+0

{Binding Path=expr}은 하나의 바인딩에 전달되는으로 MultiBindings를 무시하십시오. 나는 나중에 해결됩니다. – vaughan

관련 문제