WPF ComboBox
控件允许通过两种方式使用鼠标更改选择。
用鼠标向下/向上单击,出现弹出窗口,然后单击要选择的项目。
您单击并按住。将出现弹出窗口,将鼠标悬停在要选择的项目上并释放鼠标按钮。选择 MouseUp 事件时鼠标悬停的项目。
有没有办法消除behavior #2
?即让他们执行 2 次完整的向下/向上单击来更改选择?
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)单击并按住仍然会打开弹出窗口,但您需要释放并再次单击以选择一个项目。