繁体   English   中英

WPF组合框选择行为

[英]WPF Combobox selection behavior

WPF ComboBox控件允许使用两种方法来更改鼠标的选择。

  • 用鼠标单击上/下,将显示弹出窗口,然后单击要选择的项目。

  • 您单击并按住。 出现弹出窗口,将鼠标悬停在要选择的项目上,然后释放鼠标按钮。 选择MouseUp事件时鼠标悬停的项目。

有没有办法消除behavior #2 即让他们执行2次完整的向下/向上点击以更改选择?

它可能并不完美,但是结合几个事件似乎可以满足您的要求:

private bool _comboMouseDown = false;
private bool _comboSelectionDisabled = false;

private void ComboBox_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
    _comboMouseDown = true;
}

private void ComboBox_DropDownOpened(object sender, EventArgs e)
{
    if (_comboMouseDown)
    {
        //Don't enable selection until the user releases the mouse button:
        _comboSelectionDisabled = true;
    }
}

private void ComboBox_PreviewMouseUp(object sender, MouseButtonEventArgs e)
{
    if (_comboSelectionDisabled)
    {
        //Stop the accompanying "MouseUp" event (which would select an item) from firing:
        e.Handled = true;

        _comboSelectionDisabled = false;
    }

    _comboMouseDown = false;
}

1)仍然可以正常使用

2)单击并保持仍然会打开弹出窗口,但是您需要释放并再次单击以选择一个项目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM