Событие MouseUp не работает при щелчке левой кнопкой мыши
Я делаю графический интерфейс с использованием Windows Presentation Foundation (WPF). Когда я щелкаю мышью по кнопке (левой или правой), я хочу, чтобы появилось окно сообщения. До сих пор мне удавалось сделать пример из учебников, но он работает только тогда, когда я щелкаю правой кнопкой мыши, а не когда я щелкаю левой кнопкой мыши по кнопке. Я не вижу ничего в своем коде, что должно препятствовать работе левого клика, поэтому я надеюсь, что вы мне поможете.
Код XAML
<Grid>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="72">
Hello, WPF!
</TextBlock>
<!-- This button shuld activate the even MyButton_MouseUp -->
<Button Margin="200,250,200,20" Name="MyButton" MouseUp="MyButton_MouseUp">
Test
</Button>
</Grid>
Код C#
// This only works on right-click
private void MyButton_MouseUp(object sender, MouseButtonEventArgs e)
{
MessageBox.Show("Hello world!");
}
2 ответа
Вы можете подписаться на PreviewMouseUp
туннельное событие вместо MouseUp
:
<Button Margin="200,250,200,20" Name="MyButton" PreviewMouseUp="MyButton_MouseUp" />
PreviewMouseUp
Стратегия маршрутизации - это туннелирование, т.е. VisualTree
иерархия, и поэтому события туннеля запускаются до событий пузыря.
В дополнение к посту С. Акбари, этот стоит прочитать, чтобы понять, почему щелчок правой кнопкой мыши работает, а щелчок левой кнопкой мыши не...