WPF-鼠标向下弹出菜单,然后用鼠标向上选择



我正在尝试创建一个UserControl,其行为如下:

  • 一个开始使用的按钮,当用户单击并按住它时,会出现一个Radial菜单
  • 用户一直按住鼠标左键,然后释放他们想要的菜单项
  • 我正在使用此Radial菜单https://github.com/Julien-Marcou/RadialMenu

以下是我的尝试:

<UserControl x:Class="NetBoard.RadialButton"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:NetBoard"
             xmlns:radial="clr-namespace:RadialMenu.Controls;assembly=RadialMenu"
             mc:Ignorable="d" >
    <Grid>
        <Button Name="Button"
                PreviewMouseDown="Button_MouseDown" 
                PreviewMouseUp="Button_MouseUp" />
        <radial:RadialMenu Name="RadialMenu" />
    </Grid>
</UserControl>
public partial class RadialButton : UserControl
{
    public RadialButton()
    {
        InitializeComponent();
        // Test menu items
        for (int i = 0; i < 3; i++)
        {
            RadialMenu.Content.Add(new RadialMenuItem { Content = i });
        }
        foreach (RadialMenuItem item in RadialMenu.Content)
        {
            item.PreviewMouseLeftButtonUp += Slice_MouseUp;
        }
    }
    private void Button_MouseDown(object sender, MouseButtonEventArgs e)
    {
        RadialMenu.IsOpen = true;
    }
    private void Button_MouseUp(object sender, MouseButtonEventArgs e)
    {
        RadialMenu.IsOpen = false;
    }
    private void Slice_MouseUp(object sender, MouseButtonEventArgs e)
    {
        MessageBox.Show("It worked!");
    }

径向菜单弹出良好,但PreviewMouseLeftButtonUp事件不会在RadialMenuItems上触发。菜单项的行为甚至不像被鼠标悬停(它们会改变颜色)。

关于如何做到这一点,有什么想法吗?

我实际上是用标签而不是按钮来实现这一点的。

相关内容

  • 没有找到相关文章

最新更新