【问题标题】:Popups in XBAP stop receiving anything but mouse events after losing focus?XBAP 中的弹出窗口在失去焦点后停止接收除鼠标事件之外的任何内容?
【发布时间】:2011-09-22 00:38:27
【问题描述】:

我的 XBAP 中有一个Popup 控件,每当弹出控件打开并且它失去焦点时(例如警报框、断点、切换到 Windows 中的另一个应用程序、切换到我的 Web 浏览器中的另一个选项卡)等),弹出窗口不再响应鼠标事件之外的任何内容。

我不能:

  • 用鼠标选择一个文本框
  • 使用鼠标突出显示文本框中的文本
  • 使用 Tab 键更改控件
  • 当我用鼠标打开组合框时,使用键盘选择它

我可以:

  • 使用鼠标更改组合框值
  • 用鼠标点击按钮

【问题讨论】:

    标签: wpf popup focus xbap


    【解决方案1】:

    我能找到的最接近这个问题的是http://social.msdn.microsoft.com/Forums/en/wpf/thread/cd723315-187f-4d8b-a97d-6aac38a2ed1f

    程序员失去了对弹出窗口的关注,并且再也无法将其恢复。根据微软支持者的说法。 “看起来您遇到了与 XBAP 中的 Popup 相关的已知错误。”

    您可以查看它是否与您的问题相似,但问题从未解决。 OP 最终在主页上添加了一个画布和一个用户控件来替换弹出窗口。


    如果这实际上不是某种不可避免的行为,并且我正在从头开始解决这个问题,我会检查您的应用程序何时重新获得焦点,并查看您的应用程序是否同时获得 keyboard and logical focus 和焦点范围一直到弹出窗口上的控件都是正确的。

    在逻辑焦点中,有一个“焦点范围”的概念,它是围绕一组 UIElement 的应用程序定义的边界。每个 Focus Scope 都维护自己的“Focused Element”,它可以不同于具有键盘焦点的元素。

    【讨论】:

    • 大声笑我应该知道最好不要使用 WPF 弹出窗口做任何事情。实际上,我有自己的 Popup UserControl,我通常使用它,但在这种情况下,我想再次尝试 WPF 的弹出窗口,因为距离我上次尝试它已经有一段时间了。回到使用我的 UserControl 我猜....
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    • 2014-07-25
    相关资源
    最近更新 更多