【问题标题】:How to disable mousedown event on Silverlight listbox如何在 Silverlight 列表框上禁用 mousedown 事件
【发布时间】:2012-03-18 14:09:56
【问题描述】:

我在 SL5 列表框项模板中有一个第三方图像控件。这使得一个很好的可滚动的图像画廊。

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

或者我对原因完全错误。在这种情况下,任何其他关于为什么列表框似乎阻止 mouseleftbuttondown 事件到达其中的控件的想法都值得赞赏。

谢谢, 标记

【问题讨论】:

    标签: silverlight


    【解决方案1】:

    如果您可以获得必要的UIElementDelegate 引用来触发图像控件功能。

    【讨论】:

      【解决方案2】:

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

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

      据此,我收集到 mouseleftbuttondown 事件一直被图像控件接收,但很可能当它通过列表项及其他内容冒泡时,列表项做了它的事情,然后将其标记为已处理,有效地杀死了图像控件正在尝试的任何东西去做。通过将事件标记为在图像控制级别处理,列表项将忽略它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-08
        • 2010-12-03
        • 1970-01-01
        • 2012-03-20
        • 2011-03-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多