diff --git a/src/Wpf.Ui/Controls/DropDownButton/DropDownButton.cs b/src/Wpf.Ui/Controls/DropDownButton/DropDownButton.cs index 522dd023a..5f8883988 100644 --- a/src/Wpf.Ui/Controls/DropDownButton/DropDownButton.cs +++ b/src/Wpf.Ui/Controls/DropDownButton/DropDownButton.cs @@ -4,6 +4,7 @@ // All Rights Reserved. using System.Windows.Controls; +using System.Windows.Input; // ReSharper disable once CheckNamespace namespace Wpf.Ui.Controls; @@ -15,6 +16,11 @@ public class DropDownButton : Button { private ContextMenu? _contextMenu; + public DropDownButton() + { + PreviewMouseLeftButtonUp += OnPreviewMouseLeftButtonUp; + } + /// Identifies the dependency property. public static readonly DependencyProperty FlyoutProperty = DependencyProperty.Register( nameof(Flyout), @@ -87,10 +93,8 @@ protected virtual void OnContextMenuOpened(object sender, RoutedEventArgs e) protected virtual void OnIsDropDownOpenChanged(bool currentValue) { } - protected override void OnClick() + private void OnPreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e) { - base.OnClick(); - if (_contextMenu is null) { return; @@ -98,10 +102,7 @@ protected override void OnClick() _contextMenu.SetCurrentValue(MinWidthProperty, ActualWidth); _contextMenu.SetCurrentValue(ContextMenu.PlacementTargetProperty, this); - _contextMenu.SetCurrentValue( - ContextMenu.PlacementProperty, - System.Windows.Controls.Primitives.PlacementMode.Bottom - ); + _contextMenu.SetCurrentValue(ContextMenu.PlacementProperty, System.Windows.Controls.Primitives.PlacementMode.Bottom); _contextMenu.SetCurrentValue(ContextMenu.IsOpenProperty, true); } }