Я думаю, что для ваших нужд событие PreviewMouseLeftButtonUp (Down) более подходит. Затем вам нужно обработать ClickCount для подсчета количества кликов, а затем вызвать собственное событие, на котором другие элементы управления будут знать, что ваш элемент управления нажат. Существует гораздо больше методов обработки события клика. Вы должны посмотреть на эту статью MSDN и это
ОБНОВЛЕНИЕ для обработки как Click, так и DoubleClick
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
_myCustomUserControl.MouseLeftButtonUp += new MouseButtonEventHandler(_myCustomUserControl_MouseLeftButtonUp);
_myCustomUserControl.MouseDoubleClick += new MouseButtonEventHandler(_myCustomUserControl_MouseDoubleClick);
}
bool _doubleClicked;
void _myCustomUserControl_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
_textBlock.Text = "Mouse left button clicked twice";
_doubleClicked = true;
e.Handled = true;
}
void _myCustomUserControl_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (_doubleClicked)
{
_doubleClicked = false;
return;
}
_textBlock.Text = "Mouse left button clicked once";
e.Handled = true;
}
}
Чтобы протестировать этот пример, назовите свой элемент управления _myCustomUserControl и добавьте TextBlock с именем _textBlock в свой MainWindow.xaml