WPF 中的倒角半径(类似于负半径)

发布于 2024-12-08 03:35:31 字数 142 浏览 1 评论 0原文

我尝试创建一个具有负角半径的边框,如下所示:

在此处输入图像描述

我想要半径在内部。这可以通过内置函数实现吗?还是我必须用路径来绘制它?

I try to create a border with a negative Corner radius, like this:

enter image description here

I want the radius on the inside. Is this possible with build in functions or do I have to paint it with a path?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

尽揽少女心 2024-12-15 03:35:31

好吧,我遇到了同样的问题并试图找出解决方案。
最后但并非最不重要的一点是,我得出的结论是不可能用 border 来解决这个问题。

我专注于使用 PathCombinedGeometry 函数绘制 Border

如果有人仍在寻找解决方案,如何制作倒圆角,这是我的解决方案:

<Grid>
            <Path Stroke="Black" Fill="White" StrokeThickness="10" Stretch="Fill">
                <Path.Data>
                    <CombinedGeometry GeometryCombineMode="Exclude">
                        <CombinedGeometry.Geometry1>                                
                            <RectangleGeometry Rect="100,200 200,100"/>
                        </CombinedGeometry.Geometry1>
                        <CombinedGeometry.Geometry2>
                            <EllipseGeometry RadiusX="50" RadiusY="50" Center="300,300" />
                        </CombinedGeometry.Geometry2>
                    </CombinedGeometry>
                </Path.Data>
            </Path>
    <Button Margin="10" Height="10" Width="10"/>
</Grid>

您可以通过更改 RectangleGeometry Rect="100,200 200,100 中的值来调整 矩形 的大小,并且在其中添加任何其他 WPF 项目。在本例中,我添加了一个 Button

结果如下:

结果截图

Well I faced the same problem and tried to figure out a solution.
Last but not least I came to the conclusion that it is not possible to solve this with a border.

I focussed on drawing my Border with the Path and the CombinedGeometry function.

If anyone is still looking for a solution how to make inverted round corners here is my solution:

<Grid>
            <Path Stroke="Black" Fill="White" StrokeThickness="10" Stretch="Fill">
                <Path.Data>
                    <CombinedGeometry GeometryCombineMode="Exclude">
                        <CombinedGeometry.Geometry1>                                
                            <RectangleGeometry Rect="100,200 200,100"/>
                        </CombinedGeometry.Geometry1>
                        <CombinedGeometry.Geometry2>
                            <EllipseGeometry RadiusX="50" RadiusY="50" Center="300,300" />
                        </CombinedGeometry.Geometry2>
                    </CombinedGeometry>
                </Path.Data>
            </Path>
    <Button Margin="10" Height="10" Width="10"/>
</Grid>

You can resize the Rectanglewith changing the values in RectangleGeometry Rect="100,200 200,100and add inside it any other WPF item.. in this case I added a Button.

Here's the result:

Result screenshot

孤蝉 2024-12-15 03:35:31

您可以在 Border 中使用 Border

<Border Background="Black">
    <Border Margin="10" Background="White" CornerRadius="20">
        <!-- ... -->    
    </Border>
</Border>

在此处输入图像描述

You could use a Border in a Border

<Border Background="Black">
    <Border Margin="10" Background="White" CornerRadius="20">
        <!-- ... -->    
    </Border>
</Border>

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文