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

时间:2011-10-04 21:55:56

标签: c# .net wpf visual-studio wpf-controls

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

enter image description here

我想要内部的半径。这可能是内置函数还是我必须用路径绘制它?

2 个答案:

答案 0 :(得分:1)

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

我专注于使用BorderPath函数绘制CombinedGeometry

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

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

您可以通过更改Rectangle中的值来调整RectangleGeometry Rect="100,200 200,100的大小,并在其中添加任何其他WPF项。在这种情况下,我添加了Button

结果如下:

Result screenshot

答案 1 :(得分:0)

您可以在Border

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

enter image description here