我对ComboBoxes
的鼠标事件有两个问题。我想要实现的是一个" Touch-and-Release" -Solution,这意味着在用户按下/触摸Combobox
500ms之后会发生一些事情。我有Class
我将Events
的所有Controls
发送到Combobox
。对于((ComboBox)obj).PreviewMouseDown -= CTRLMouseButtonEventHandler_Down;
((ComboBox)obj).PreviewMouseDown += CTRLMouseButtonEventHandler_Down;
((ComboBox)obj).PreviewMouseUp -= CTRLMouseButtonEventHandler_Up;
((ComboBox)obj).PreviewMouseUp += CTRLMouseButtonEventHandler_Up;
我这样做:
Events
我的上/下 - private void CTRLMouseButtonEventHandler_Down(object sender, MouseEventArgs e)
{
_currentControl = (Control)sender;
_touchHoldTimer = new System.Windows.Threading.DispatcherTimer();
_touchHoldTimer.Interval = TimeSpan.FromMilliseconds(500);
_touchHoldTimer.Tick += TouchHoldTimer_Tick;
_touchHoldTimer.Start();
}
private void CTRLMouseButtonEventHandler_Up(object sender, MouseEventArgs e)
{
_touchHoldTimer.Stop();
}
看起来像这样:
Focus
第一个问题是,当我的Control
位于另一个Combobox
上并点击Combobox
并按住时,没有任何反应。我首先要点击PreviewMouseDown
,然后点击并按住它就可以了。
我的第二个问题是,当按下Scrollbar
的{{1}}或ToggleButton
时,Combobox
也会被触发。我试过这样的事情:
((ComboBox)obj).AddHandler(TextBox.PreviewMouseDownEvent, new RoutedEventHandler(CTRLMouseButtonEventHandler_Down2));
((ComboBox)obj).AddHandler(TextBox.PreviewMouseUpEvent, new RoutedEventHandler(CTRLMouseButtonEventHandler_Up2));
但它没有'工作。有人可以指点我的方向吗?
答案 0 :(得分:0)
添加其他活动。将鼠标悬停在Combobox上设置事件以进行选择。它与点击它一样。
编辑:
其他可能的事件:
DropDownOpened 的ContextMenuOpening
https://msdn.microsoft.com/en-us/library/system.windows.controls.combobox_events(v=vs.110).aspx
2。 KeyDown event is not firing when pressing enter in an UserControl
只需用空格替换回车。