c# - 如何在圆角 WPF 窗体中创建圆角矩形?

发布时间 2023-08-18 10:42:11作者: WebEnh

我正在 WPF 中创建一个应用程序,我想要圆角。收到。现在窗体是无边框的,我正在尝试创建一个圆角矩形并将其放在顶部,使其看起来像 Windows 应用程序的顶部栏。

我做不到。

这是我的代码:

<Border CornerRadius="50, 0, 50, 0" BorderBrush="Black" BorderThickness="2" Background="GhostWhite">
        <Grid Margin="0,0,0,402">
            <Rectangle HorizontalAlignment="Left" Height="44" VerticalAlignment="Top" Width="796">
                <Rectangle.Fill>
                    <VisualBrush Stretch="None">
                        <VisualBrush.Visual>
                            <Border Width="800" Height="200" CornerRadius="50,0,0,0" Background="DarkOliveGreen"/>
                        </VisualBrush.Visual>
                    </VisualBrush>
                </Rectangle.Fill>
            </Rectangle>
            <Grid HorizontalAlignment="Left" Height="403" Margin="0,44,0,-403" VerticalAlignment="Top" Width="796"/>
        </Grid>
    </Border>

我的主要形式:

Main Form Design 我想要什么:

Desired Output

我得到了什么:

My Output

 

最佳答案

 

您需要对控制结构进行一些小的更改才能实现它。以下代码已经过测试并且可以正常工作。

<Grid>
    <Grid.OpacityMask>
        <VisualBrush Visual="{Binding ElementName=myBorder}" />
    </Grid.OpacityMask>
    <Border x:Name="myBorder" CornerRadius="50,0,50,0" Background="GhostWhite" BorderBrush="Black" BorderThickness="2"/>
    <Rectangle HorizontalAlignment="Left" Height="44" VerticalAlignment="Top" Width="796">
        <Rectangle.Fill>
            <VisualBrush Stretch="None">
                <VisualBrush.Visual>
                    <Border Width="800" Height="200" CornerRadius="50,0,0,0" Background="DarkOliveGreen"/>
                </VisualBrush.Visual>
            </VisualBrush>
        </Rectangle.Fill>
    </Rectangle>
</Grid>

 

关于c# - 如何在圆角 WPF 窗体中创建圆角矩形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56163207/