WPF 中的“角径向”菜单

Corner Radial menu in WPF

提问人:Alexander 提问时间:11/17/2023 最后编辑:EldHaspAlexander 更新时间:11/20/2023 访问量:40

问:

我正在 WPF 中创建一个径向菜单,该菜单位于窗口的一角,如下所示:

这是另一个示例:

我认为从图像或poligons创建用户控件会更方便。

在尝试了一些选项后,我决定使用多边形来做,这些多边形使用网格作为容器,而容器又位于边框内。

好吧,我被困在这里:

我设法使用多边形创建了菜单的一部分,但我无法使多边形看起来是圆形的:![没有圆角的菜单][1]

它应该看起来像这样:![圆角菜单][2]

enter image description here

enter image description here

这是我的代码:

<Window x:Class="RippleApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:RippleApp"
        mc:Ignorable="d"
        Title="MainWindow"
        Height="600"
        Width="800"
        WindowStartupLocation="CenterScreen"
        WindowStyle="None"
        AllowsTransparency="True"
        Background="#FF28305A">
    
    <Border x:Name="Border1" BorderBrush="Black" BorderThickness="1,1,1,1" CornerRadius="200" Height="400" Width="400" Margin="0,0,0,0" Background="Black">
            <Grid>
                <Polygon x:Name="pie1" Points="200,200 344,450 0,450" Fill="#FFF48117" Stroke="Black" StrokeThickness="1"/>                
                <Polygon x:Name="pie3" Points="200,200 450,0 450,344" Fill="#FF8FAB41" Stroke="Black" StrokeThickness="1"/>
                <Polygon x:Name="pie2" Points="200,200 344,450 450,344" Fill="#FF767BE0" Stroke="Black" StrokeThickness="1"/>
            </Grid>
        </Border>

</Window>

我还尝试使用结合了 visualbrush 和 opacitymask 的画布容器,但它对我不起作用,多边形不采用边框容器的圆形:

<Canvas>
    <Canvas.OpacityMask>
        <VisualBrush Visual="{Binding ElementName=Border1}" />
    </Canvas.OpacityMask>
</Canvas>
WPF 菜单 圆角径

评论


答: 暂无答案