我的WPF应用程序中有一个UserControl.我想调用click事件并在用户单击UserControl时执行一些操作.问题是 - UserControl没有点击事件.我在网上搜索,发现你可以使用MouseLeftButtonUp事件.我试了一下 - 但它没有回应我的点击.有任何想法吗?谢谢!
你没有写下你想要做的事情,但是如果你需要点击事件,你可能正在编写某种按钮(Button类实际上是"你可以点击的东西",你可以替换的控件模板中有可视化表示)
我认为满足您需求的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;
}
}
Run Code Online (Sandbox Code Playgroud)
若要测试此示例,请将您的控件命名为_myCustomUserControl,然后将一个名为_textBlock的TextBlock添加到MainWindow.xaml中。
| 归档时间: |
|
| 查看次数: |
25100 次 |
| 最近记录: |