У меня была похожая проблема (реагировать на одно нажатие и выполнять дополнительную работу в случае двойного щелчка). Я решил проблему следующим образом:
1) определить и объявить некоторое целое число для хранения отметки времени последнего клика
int lastClickTimestamp;
2) в методе Window_Loaded инициализировать ранее объявленную переменную с некоторым числом больше 200
lastClickTimestamp = 1000;
3) добавить обработчик кнопки мыши на панель стека
stackPanel.MouseLeftButtonUp += new MouseButtonEventHandler(stackPanel_MouseLeftButtonUp);
4) добавить следующий метод
void stackPanel_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (e.Timestamp - lastClickTimeStamp < 200)
{
//double click
}
lastClickTimeStamp = e.Timestamp;
//single click
}
Этот код бесполезен, если вам нужно отдельно определять событие одиночного щелчка и двойного щелчка. Эта ситуация вносит немного больше сложности, но определенно может быть решена.