形式为wpf

时间:2017-03-21 07:53:11

标签: c# wpf xaml rounded-corners

我阅读了this document,其中解释了如何在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>

在这种情况下,我的色带不是圆形的,例如我的形状。我该怎么办?

1 个答案:

答案 0 :(得分: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

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

另一种方法是从复制更新功能区控件模板(使用Blend)。