diff --git a/src/Avalonia.Controls/Control.cs b/src/Avalonia.Controls/Control.cs index 13e2a02fe53..d317d972d23 100644 --- a/src/Avalonia.Controls/Control.cs +++ b/src/Avalonia.Controls/Control.cs @@ -380,10 +380,13 @@ protected sealed override void OnAttachedToVisualTreeCore(VisualTreeAttachmentEv private void OnHoldEvent(object? sender, HoldingRoutedEventArgs e) { - if (!e.Handled && e.HoldingState == HoldingState.Started) + if (e.Source == this && !e.Handled && e.HoldingState == HoldingState.Started) { // Trigger ContentRequest when hold has started - RaiseEvent(e.PointerEventArgs is { } ev ? new ContextRequestedEventArgs(ev) : new ContextRequestedEventArgs()); + var contextEvent = e.PointerEventArgs is { } ev ? new ContextRequestedEventArgs(ev) : new ContextRequestedEventArgs(); + RaiseEvent(contextEvent); + + e.Handled = contextEvent.Handled; } }