Я создаю пользовательский элемент управления, который включает всплывающую панель.
Когда я нажимаю кнопку, чтобы открыть панель, я пытаюсь захватить мышь, чтобы я мог определить, щелкает ли пользователь свсплывающую панель, чтобы я мог ее закрыть.
Но сразу после захвата мыши я получаю событие потерянного захвата мыши и не могу обнаружить щелчки за пределами панели.
здесьЯ обнаруживаю прямое открытое закрытие щелчком
private void Grid_MouseUP(object sender, MouseButtonEventArgs e)
{
if (indicatorVM != null)
{
if (indicatorVM.SettingsFlyoutVisibility == Visibility.Collapsed)
{
doRelease = false;
indicatorVM.SettingsFlyoutVisibility = Visibility.Visible;
bool result = this.CaptureMouse();
result = Mouse.Capture(this, CaptureMode.SubTree);
}
else
{
doRelease = true;
indicatorVM.SettingsFlyoutVisibility = Visibility.Collapsed;
this.ReleaseMouseCapture();
}
}
}
Если я подключусь к событию потерянного захвата, он срабатывает сразу после открытия выпадающего меню.Когда я проверяю переменную результата, независимо от способа захвата мыши, результат равен true, поэтому, похоже, он работает правильно.
Есть идеи?