В моем основном окне приложения есть элементы управления, каждый из которых открывает всплывающее окно, которое предоставляет пользователю больше элементов управления.WPF popup capture mouse doubleclick events
Другие элементы управления в главном окне приложения имеют обработчики событий mousedoubleclick. Моя проблема заключается в том, что когда пользователь дважды щелкает во всплывающем окне, элементы управления за всплывающим окном получают события mousedoubleclick.
Я попытался добавить обработчик события mousedoubleclick к родительскому окну всплывающего окна и обработать событие, но он все равно переходит в главное окно приложения.
private void ParentControl_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
e.Handled = true;
}
Я также попытался вызов Popup.CaptureMouse() в обработчике событий MouseEnter в всплывающем окне, но этот метод всегда терпит неудачу (возвращает ложь).
void popup_MouseEnter(object sender, MouseEventArgs e)
{
e.Handled = true;
Popup popup = sender as Popup;
bool success = popup.CaptureMouse();
}
Есть ли какие-либо другие способы, чтобы предотвратить события мыши от стрельбы в главном окне приложения, когда всплывающее окно открыто?
Джим, я не мог воспроизвести вашу проблему. Просто чтобы уточнить, когда вы упоминаете всплывающее окно, это новая форма окна или это элемент управления в главном окне, изменяющий его видимость от Скрытого/Коллапса до видимого. –
По всплывающему окну я имею в виду класс Popup. См. Http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.popup.aspx – 2009-11-02 20:20:01
, на какой элемент управления вы устанавливаете обработчик событий? – thumbmunkeys