【问题标题】:How to force a control to not pass a click event up the tree? WPF C#如何强制控件不向上传递单击事件? WPF C#
【发布时间】:2008-11-10 14:40:35
【问题描述】:

是否可以将 Grid 或其他容器控件设置为某种事件大坝?这样当任何事件(特别是左键单击)在其中启动时,它们会在该控件处停止并且不再继续?

【问题讨论】:

    标签: c# wpf events


    【解决方案1】:

    PreviewMouseDown 是你的朋友...

    将此事件添加到您的控件,并将 Handled 属性设置为 true...

    所有事件在预览阶段首先从根到叶子,然后在实际事件案例中从叶子到根处理......

    所以 PreviewMouseDown 在 Button 之前处理 Grid,而 MouseDown 事件在 Grid 之前处理 Button...

    希望这会有所帮助...

    【讨论】:

    • 谢谢大角星。正如您发布的那样,实际上正在解决这个问题。这绝对有帮助,现在一切正常。 :D
    • 没问题 :) 很高兴我能帮上忙! :D
    【解决方案2】:

    您应该能够扩展您想要的任何控件(假设它不是密封的)。在您的扩展类中,您可以覆盖单击事件并将其吞下(不要将其传递给基类)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-02
      • 2021-06-13
      相关资源
      最近更新 更多