gpt4 book ai didi

wpf - WPF 中的可聚焦面板

转载 作者:行者123 更新时间:2023-12-04 15:37:58 25 4
gpt4 key购买 nike

我需要在 WPF 中使面板可聚焦,以便它像任何其他可聚焦控件一样捕获键盘事件:

  • 用户在面板内部单击以使其获得焦点
  • 任何 KeyDownKeyUp事件在面板级别引发
  • 如果单击面板外的另一个可聚焦元素,面板将失去焦点

  • 我实验过 FocusManager.IsFocusScope="True"在面板和 myPanel.Focus()返回 true但仍然没有调用 Panel KeyUp 事件处理程序。

    我错过了什么吗?

    最佳答案

    经过更多调查,面板具有键盘焦点并保持它直到按下箭头键或 TAB(启动焦点循环)。

    我刚刚为 KeyDown 添加了一个处理程序带有“e.Handled = true;”的事件现在一切正常。

    总而言之,要有一个可聚焦的面板:

  • 添加 FocusManager.IsFocusScope="True"到面板
  • 防止失去对箭头和 Tab 键的关注:

  • myPanel.KeyDown += new KeyEventHandler(
    delegate(object sender, KeyEventArgs e)
    {
    if (e.Key == Key.Left ||
    e.Key == Key.Up ||
    e.Key == Key.Right ||
    e.Key == Key.Down ||
    e.Key == Key.Tab)
    e.Handled = true;
    }
    );


    最后用 myPanel.Focus(); 给它一个焦点.

    关于wpf - WPF 中的可聚焦面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1721458/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com