2017-03-21 10 views
2

私はWPFで角を丸くする方法を説明するthis documentを読んでいます。私のリボンが私のフォームのような丸みを帯びていないこの場合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> 

:私のXAMLはこれです。私に何ができる?

答えて

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

あなたはそれが、その後、右上と左下のみコーナリングをしたい場合少し難しいです。 2つの長方形を組み合わせたジオメトリを使用する必要があります。最初のものは0,0を開始しますが、右の境界の外側で終了します。そして、第2のものは-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

このアプローチは、あなたがコントロールを動的に画面に基づいて調整したい場合は、コードビハインドで動的にクリップします、あなたのリボンは、サイズを事前に定義していることが必要です。

これを行うもう1つの方法は、おそらく、リボンコントロールテンプレートをcopy(usin gブレンド)。

+0

ありがとう、私はこれだけの私のフォームのサイズは可変であり、私はそのコードの背後を知っていません。ありがとうございます。 – Reza