- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
注意:我已经找到了我的问题的解决方案,所以我将其发布以供引用,尽管我很乐意接受更好的解决方案。
我试图通过连接到 UIElement.MouseLeftButtonDown 来在 Silverlight DataGrid 上提供双击功能但是当我使用 XAML 或 DataGrid.MouseLeftButtonDown +=
语法订阅 DataGrid.MouseLeftButtonDown 时,当我单击 DataGrid 中的行时不会调用我的事件处理程序。如果我单击标题,则会引发事件。
如果我在父 UserControl 级别订阅相同的事件,事件处理程序将如您预期的那样成功调用,基于 Silverlight RoutedEvents但随后我必须检测点击是发生在 DataGrid 上还是其他地方。
如果我使用这个 UIElement.AddHandler 订阅事件语法,如下所示,然后它会根据 handledEventsToo: true 参数按预期工作。
dataGrid.AddHandler(UIElement.MouseLeftButtonDownEvent,
new MouseButtonEventHandler(dataGrid_MouseLeftButtonDown)
, handledEventsToo: true);
似乎 DataGrid 实现将这些事件标记为已处理,防止事件冒泡,默认情况下在其中一个子 UIElement 中,这不是我最初期望的。经过更多思考,我可以看到点击行为驱动了各种各样的事情(选择项目、编辑字段等),所以也许实现是有意义的。
最佳答案
我遇到了同样的问题,我使用了触发事件的 MouseLeftButtonUp,但点击计数值始终为 1。
解决方法如下:
private const int MOUSE_SENSITIVITY = 300;
private DateTime _previousClick;
private void exceptionsDataGrid_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
DataGrid dg = (sender as DataGrid);
DateTime current=DateTime.Now;
LoggerService.Exception exception = (LoggerService.Exception)dg.SelectedItem;
if (_previousClick != null)
{
TimeSpan clickSpan = current - _previousClick;
if (clickSpan.TotalMilliseconds < MOUSE_SENSITIVITY)
{
MessageBox.Show("You double clicked!");
}
}
_previousClick = current;
}
关于单击行时未引发 Silverlight DataGrid MouseLeftButtonDown 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9222686/
我有一个派生自 UserControl 类的 WPF 用户控件。 MouseLeftButtonDown 根本不会因为控件而被解雇。我添加了事件处理程序并尝试如下。我想它是在其他地方处理的,如何调试并
我遇到了一个大问题,我已经尽我所能,但我没有找到任何解决方案。我有一个带有 DataTemplate 的列表框。我想使用 MouseLeftButtonDown 和 MouseLeftButtonUp
尝试使用 Slider 时控制我想听MouseLeftButtonDown和 MouseLeftButtonUp .我为这两个事件设置了处理程序。 MouseLeftButtonUp按预期工作。 Mo
我有一个共同的任务。一键实现DataGrid中的CheckBox勾选。我决定创建一个从 DataGrid 派生的 DataGridExtended 类,并实现类似的东西: XAML: 代码: pu
我有以下 XAML 代码: 当我用鼠标左键单击复选框时,不会触发声明的事件。 任何人都可以解释这种行为吗? 提前致谢 最佳答案 该事件
我正在努力解决一个让我发疯的问题。 这是我的 XAML 代码(简化):
我正在尝试以编程方式在 WPF 控件上手动触发 MouseLeftButtonDown 事件,因为我使用的是 Microsoft Surface SDK,它不会触发 MouseLeftButtonDo
我的 XAML 是: 现在我正在关注 MVVM。我需要更改代码以使其与 ViewModel 一起使用。我该如何处理
注意:我已经找到了我的问题的解决方案,所以我将其发布以供引用,尽管我很乐意接受更好的解决方案。 我试图通过连接到 UIElement.MouseLeftButtonDown 来在 Silverligh
您好,我不知道为什么它不起作用。看起来我不能在 InkCanvas 上使用这个事件。 XAML Clear 代码隐藏 private void MC_MouseLeftButt
我在 WPF 应用程序中有一个 TreeView 。如下。 这里是事件的处理程序,存在于代码隐藏文件中
我在一个更大的项目中遇到了这个问题......所以我设置了一个“Testpoject”作为概念证明: 新的 Silverlight 应用程序 添加列表框 用几个复选框填充列表框 注册 listBox1
我在添加到 WPF Canvas 的元素上响应 MouseLeftButtonDown 事件。单击时一切正常(即事件处理程序正确触发),但它对鼠标指针的精度要求太高。你必须完美地站在圆圈的顶端才能让它
我正在尝试了解 MouseLeftButtonDown 的工作原理,但直到现在还没有成功。 当我点击按钮时,没有任何反应。
我构建了一个 WPF 用户控件。此控件具有透明背景。我想捕获 MouseLeftButtonDown 事件,即使此事件发生在透明背景上。如果我将背景更改为“白色”或其他颜色,则事件将按预期进行。 有没
这个问题在这里已经有了答案: What are WPF Preview Events? (4 个答案) 关闭 8 年前。 在学习 WPF 时(我是新手),我创建了一个简单的窗口并放置了一个用于输入用
这是我的代码: public AbilitiesController(Abilities page) { _page = page; page.Scro
如何向 WPF MouseLeftButtonDown 事件处理程序添加特定键盘键的附加条件? 例如Ctrl + 键 private void Grid_MouseLeftButtonDown(obj
当用户单击任何给定的 ListBox 时,我想运行一些代码元素。我的设置是 ListBox带定制ItemsPanelTemplate (Pavan 的 ElementFlow)。基于进入 MouseL
我试过这个 XAML: 还有这个 C#: private void slider_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
我是一名优秀的程序员,十分优秀!