c# - wpf 形式的所有内容的圆角

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

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

最佳答案

您可以剪辑以创建圆角。如果你想将 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)。

关于c# - wpf 形式的所有内容的圆角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42921155/

相关文章:

c# - 如何在Windows Phone 7 中释放应用程序缓存?

c# - visual studio 退出调试没有任何异常或错误

c# - 如何在 WPF 中动态创建矩形?

c# - 为什么调用方方法和异步方法具有相同的线程 ID

c# - 使用 Font Awesome 更改 WPF 中的字体图标

c# - WPF AlternateContent 不工作

c# - 如何使用 ElementFlow?

c# - 从 ASP.NET Core Web 应用访问类库中的 Entity Framework

c# - 使用 Microsoft 异步框架的基础知识

c# - Windows Phone 8.1 操作事件不触发