【发布时间】:2016-03-09 11:06:05
【问题描述】:
这是我的 XAML 代码:
<Grid>
<Grid.InputBindings>
<MouseBinding Gesture="LeftDoubleClick" Command="{Binding MouseDblClick}" />
</Grid.InputBindings>
</Grid>
和我的代码隐藏:
private RelayCommand _MouseDoubleClick;
public ICommand MouseDblClick
{
get
{
if (_MouseDoubleClick == null)
{
_MouseDoubleClick = new RelayCommand(param => Clicked());
}
return _MouseDoubleClick;
}
}
private void Clicked()
{
MessageBox.Show("Works");
}
我希望在双击网格后显示消息框。但什么也没有发生。哪里错了?
【问题讨论】:
-
您的代码在您单击网格本身(空白区域)时有效。但是其他控件自己处理鼠标事件,所以我想这就是你的问题的原因。
-
不,网格是唯一的控件。所以只有“空白区域”。
-
然后检查网格的实际大小,可能它比你想象的要小,你并没有真正点击它。我复制了你的代码,它对我有用。
-
为它设置一些背景(至少是透明的),然后它应该开始捕捉鼠标事件。
-
你有没有为
Window设置DataContext
标签: c# wpf xaml binding command