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