如何在Silverlight列表框上禁用mousedown事件

时间:2012-03-18 14:09:56

标签: silverlight

我在SL5列表框itemtemplate中有第三方图像控件。这使得一个很好的可滚动图像库。

现在遇到麻烦:第三方图像控件(LeadTools v17.5)具有交互式功能,其中mouseleftbuttondown导致出现可拖动的放大镜。当控件未托管在列表框中时,这非常有用。但是点击listboxitem中的控件什么都不做。经过一些研究后,我“相信”这是因为listboxitem正在捕获mouseleftbuttondown事件,将其标记为已处理,因此图像控件永远不会看到它。在我的应用程序中,我不需要在列表框级别处理mouseleftbuttondown事件(其他按钮等控制我的UI)。假设我是正确的,有没有办法阻止listboxitem持续到这个事件?

或许我对这个事业完全错了。在这种情况下,任何其他关于为什么列表框似乎阻止mouseleftbuttondown事件到达内部控件的想法值得赞赏。

谢谢, 标记

2 个答案:

答案 0 :(得分:0)

如果您可以获得必要的ListBoxItem和{{},那么您可以将UIElement.AddHandlerhandledEventsToo: true一起使用,而不是试图阻止UIElement处理该事件。 {1}}引用触发图像控件的功能。

答案 1 :(得分:0)

感谢您的建议。在这种情况下,事实证明,快速解决方案是将此处理程序添加到图像控件:

    private void leadGalleryImageViewer_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        base.OnMouseLeftButtonDown(e);
        e.Handled = true;
    }

从此我收集了一直被图像控件接收的mouseleftbuttondown事件,但很可能当它通过listitem以及其他方式冒出时,listitem做了它的事情然后将其标记为处理有效杀死图像控件正在尝试的任何内容去做。通过将事件标记为在图像控制级别处理,listitem忽略它。