【问题标题】:Rounded Corners for all thing in form wpfwpf形式的所有东西的圆角
【发布时间】:2017-08-12 18:24:58
【问题描述】:

我阅读了this document,它解释了如何在 WPF 中创建圆角。我的 xml 是这样的:

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

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

【问题讨论】:

    标签: c# wpf xaml rounded-corners


    【解决方案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>
    

    如果您只想进行右上角和左下角的转弯,那就有点棘手了。您必须使用具有两个矩形的组合几何。第一个从 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>
    

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

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

    【讨论】:

    • 谢谢你,我需要这个只是我的表单大小是可变的,我不知道背后的代码你能解释一下吗。
    猜你喜欢
    • 2017-11-23
    • 1970-01-01
    • 2010-12-14
    • 2016-08-13
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多