C# 表格wpf中所有物件的圆角

C# 表格wpf中所有物件的圆角,c#,wpf,xaml,rounded-corners,C#,Wpf,Xaml,Rounded Corners,我读了这篇文章,它解释了如何在WPF中创建圆角。我的xaml是: <Border CornerRadius="50,0,50,0" Background="White" BorderBrush="#99ffc0c0" BorderThickness=".5"> <Grid> <Ribbon x:Name="ribbon" HorizontalAlignment="Left" VerticalAlignment="Top" Width="524"/>

我读了这篇文章,它解释了如何在WPF中创建圆角。我的xaml是:

<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>


在这种情况下,我的丝带不是圆形的,比如我的形状。我能做什么?

您可以剪裁以创建圆角。如果要将所有4条边都角化,可以使用简单的矩形几何输入,如下所示:

<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>

如果你只想做右上角和左下角的转弯,那么它就有点棘手了。必须使用具有两个矩形的组合几何体。第一个从0,0开始,但在右边界之外结束。第二个从-100,-100开始(你必须确保它离上/左足够远,并在正确的坐标624235处结束(在左,下坐标上加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>

此方法要求功能区具有预定义的大小,如果希望控件根据屏幕动态调整,则将使用代码隐藏动态剪裁


另一种方法可能是从副本(使用Blend)更新ribbon控件模板。

谢谢,我需要这个,只是我的表单大小是可变的,我不知道背后的代码。请解释一下。