using System.Reactive.Disposables;
using Avalonia.Input;
using Avalonia.Interactivity;
namespace Avalonia.Xaml.Interactions.Custom;
///
/// A behavior that allows to show control on tapped event.
///
public class ShowOnTappedBehavior : ShowBehaviorBase
{
///
///
///
///
protected override void OnAttachedToVisualTree(CompositeDisposable disposable)
{
var dispose = AssociatedObject?
.AddDisposableHandler(
Gestures.TappedEvent,
AssociatedObject_Tapped,
EventRoutingStrategy);
if (dispose is not null)
{
disposable.Add(dispose);
}
}
private void AssociatedObject_Tapped(object? sender, RoutedEventArgs e)
{
Show();
}
}