2017-03-21 11 views
2

나는 WPF에서 둥근 모서리를 만드는 법을 설명하는 this document을 읽습니다. 내 xaml은 다음과 같습니다.모든 형태의 둥근 모서리 wpf

<Border CornerRadius="50,0,50,0" Background="White" BorderBrush="#99ffc0c0" BorderThickness=".5"> 
    <Grid> 
    <Ribbon x:Name="ribbon" HorizontalAlignment="Left" VerticalAlignment="Top" Width="524"/> 
    </Grid> 
</Border> 

이 경우 내 리본은 내 양식처럼 둥글 리지 않습니다. 내가 무엇을 할 수 있을지?

답변

1

둥근 모서리를 만들기 위해자를 수 있습니다. 모든 4 개면을 구석하려면 아래와 같이, 그것은 간단한 RectangleGeomentry으로 수행 할 수 있습니다

<Ribbon x:Name="ribbon" HorizontalAlignment="Left" VerticalAlignment="Top" Height="135" Width="524"> 
    <Ribbon.Clip> 

    <RectangleGeometry RadiusX="50" RadiusY="50" Rect="0,0,524,135" /> 

    </Ribbon.Clip> 
</Ribbon> 

CornerRadius 4 sides

만, 다음 코너링 상단 오른쪽과 왼쪽 하단을하고 싶은 경우 조금 까다 롭습니다. 결합 된 지오메트리를 두 개의 직사각형과 함께 사용해야합니다. 첫 번째 것은 0,0을 시작하지만 오른쪽 경계 외부에서 끝납니다. 그리고 두 번째 것은 -100, -100에서 시작합니다. (위쪽/왼쪽에서 충분히 멀리 떨어져 있어야하고 올바른 좌표 624,235에서 끝나야합니다 (왼쪽, 아래쪽 좌표에 100을 더함).이 둘의 교차점은 왼쪽 위 , 오른쪽 하단 모서리가 둥근.

<Ribbon x:Name="ribbon" HorizontalAlignment="Left" VerticalAlignment="Top" Height="135" Width="524"> 
    <Ribbon.Clip> 
     <CombinedGeometry GeometryCombineMode="Intersect"> 
      <CombinedGeometry.Geometry1> 
       <RectangleGeometry RadiusX="50" RadiusY="50" Rect="0,0,600,200" /> 
      </CombinedGeometry.Geometry1> 
      <CombinedGeometry.Geometry2> 
       <RectangleGeometry RadiusX="50" RadiusY="50" Rect="-100,-100,624,235" /> 
      </CombinedGeometry.Geometry2> 
     </CombinedGeometry> 
    </Ribbon.Clip> 
</Ribbon> 

CornerLeftRight

이 방법을 사용하면 동적으로 코드 숨김 동적으로 클립됩니다 화면을 기반으로 조정하는 컨트롤을 원하는 경우 리본, 크기를 미리 정의되어 있어야합니다.

다른 방법으로 복사 리본 컨트롤 템플릿을 업데이트하는 것입니다. g 블렌드).

+0

감사합니다. 내 양식 크기가 가변적인데 감사합니다. 코드에 대해 잘 모릅니다. 설명해 주실 수 있습니까? – Reza