From 8b871aebddf90e7536e653d32f6bcf8ea39df463 Mon Sep 17 00:00:00 2001 From: Dinesh Solanki <15937452+DineshSolanki@users.noreply.github.com> Date: Thu, 18 Jun 2026 00:10:03 +0530 Subject: [PATCH] fix: ComboBox dropdown auto-closes when inside Menu control Add mouse capture to ToggleBlock.OnMouseDown to prevent WPF's Menu PopupControlService from closing the parent popup on mouse-up. Without capture, the Menu sees the mouse-up event and closes the hosting MenuItem popup, which cascades to close the ComboBox dropdown. Fixes #1467 --- .../HandyControl_Shared/Controls/Block/ToggleBlock.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/Shared/HandyControl_Shared/Controls/Block/ToggleBlock.cs b/src/Shared/HandyControl_Shared/Controls/Block/ToggleBlock.cs index c0909169c..02d0a271a 100644 --- a/src/Shared/HandyControl_Shared/Controls/Block/ToggleBlock.cs +++ b/src/Shared/HandyControl_Shared/Controls/Block/ToggleBlock.cs @@ -94,10 +94,21 @@ e.ChangedButton is MouseButton.Right && ToggleGesture.MouseAction is MouseAction e.ChangedButton is MouseButton.Middle && ToggleGesture.MouseAction is MouseAction.MiddleDoubleClick && e.ClickCount == 2) { + CaptureMouse(); ControlCommands.Toggle.Execute(null, this); } } + protected override void OnMouseUp(MouseButtonEventArgs e) + { + base.OnMouseUp(e); + + if (IsMouseCaptured) + { + ReleaseMouseCapture(); + } + } + private void OnToggled(object sender, ExecutedRoutedEventArgs e) { SetCurrentValue(IsCheckedProperty, IsChecked == true ? ValueBoxes.FalseBox : ValueBoxes.TrueBox);