You can add event mouseLeftButtonDown to this button. And detect the long click event using this method
public static Task<bool> MouseDown(this FrameworkElement element, TimeSpan duration)
{
DispatcherTimer timer = new DispatcherTimer();
TaskCompletionSource<bool> task = new TaskCompletionSource<bool>();
timer.Interval = duration;
MouseButtonEventHandler touchUpHandler = delegate
{
timer.Stop();
if (task.Task.Status == TaskStatus.Running)
{
task.SetResult(false);
}
};
element.PreviewMouseUp += touchUpHandler;
timer.Tick += delegate
{
element.PreviewMouseUp -= touchUpHandler;
timer.Stop();
task.SetResult(true);
};
timer.Start();
return task.Task;
}
Call the method in your event btn_MouseLeftButtonDown
For example
private async void btn_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
boolean isLongPress = await MouseDown(e.Source as Button, TimeSpan.FromSeconds(0.4));
if (isLongPress) {
} else {
}
}