问题标签 [focusmanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
18 回答
49624 浏览

wpf - 无法将焦点设置到 UserControl 的子级

我有一个UserControl包含一个TextBox. 当我的主窗口加载时,我想将焦点设置到这个文本框,所以我添加Focusable="True" GotFocus="UC_GotFocus"UserControls 定义和FocusManager.FocusedElement="{Binding ElementName=login}"我的主窗口定义中。在该UC_GotFocus方法中,我只需调用.Focus()我想要关注的控件,但这不起作用。

我需要做的就是TextBoxUserControl应用程序启动时获得焦点。

任何帮助将不胜感激,谢谢。

0 投票
1 回答
1384 浏览

flash - Firefox 和 Internet Explorer 中不同的 Flash Tab-Focus 行为

在作为大型 Flash 游戏一部分的迷你游戏中,我们展示了许多可编辑的文本字段,大约 10 行,每行两个文本字段。两个文本字段的每一行都封装在一个类中,并且该类型的对象被放置在彼此之下,因此它看起来像某种表格。

现在在 Firefox 上,选项卡行为很好,在手动聚焦第一个文本字段后,tab 键首先将焦点移到右侧,然后移到下一行,再次移到右侧,等等...

在 Internet Explorer 8(使用 Flash 播放器版本 10)中,焦点直接移动到下一行,忽略当前行右侧的字段。

这是我第一次注意到 Firefox 中的 Flash 播放器和 Internet Explorer 中的 Flash 播放器之间的真正区别之一。有谁知道他们为什么会有不同的反应以及该怎么做?

我确实尝试设置手动标签顺序,这没有任何区别。(所以我可能做错了)

0 投票
1 回答
1748 浏览

apache-flex - Flex SDK 3.4 中的错误??FocusManager.focusInHandler()

我最近从 Flex SDK 3.3 升级到了 SDK 3.4。现在我突然在整个应用程序中收到此错误消息:

它相当随机地发生,但最常见的是当我单击 tabNavigator 中的选项卡时。当我将属性 'focussable="false"' 添加到 tabNavigator 时,问题已得到解决,但我想保持 tabNavigator 可聚焦,而且我绝对不能使我的应用程序中的所有元素都无法聚焦。
有人告诉我这是 SDK 中的错误。真的吗?如果是这样,除了 'focussable="false"' 之外还有其他解决方法吗?

0 投票
1 回答
504 浏览

flex4 - flex 4: IFocusManager.moveFocus() api 已被移除,任何替代方式

我正在迁移我们的应用程序以使用 Flex 4 框架库进行编译。我昨天碰到的一件事是 IFocusManager.moveFocus() api,它以前在 Flex 3 中,似乎已从 Flex 4 中删除。我们在代码中的很多地方都使用了这个 api。

所以,我想知道是否有其他人遇到过这个问题,以及 Flex 4 中是否有已知的替代方案。我找不到任何关于此的文档。似乎有点奇怪,在代码中没有记录任何替代方案或没有首先弃用它们的情况下删除了 api,以便为开发人员提供足够的时间来寻找和测试替代方案。

谢谢

0 投票
2 回答
782 浏览

wpf - 根据另一个用户控件中的操作在一个用户控件中设置焦点

一个用户控件是一个列表框,其中列表中的每个项目都有一个按钮。单击该按钮时,有关该项目的可编辑详细信息将显示在另一个用户控件中。细节知道要显示什么以及如何通过数据绑定到视图模型来显示它。两个用户控件都在同一个窗口中。

我在这里发现棘手的问题是将焦点设置到第一个非只读文本框。

我在这里看到了一个涉及编写标记扩展的解决方案。不过现在它也有点老了,我想知道是否有更简单的方法可以做到这一点。

干杯,
贝里尔

我应该指出,作为将焦点移到文本框的触发器的 EditCommand 位于绑定到列表用户控件的视图模型中。不过,我不介意为 ui 问题提供代码。

更新 这是 Josh Smith 最近发表的一篇漂亮的帖子,它解决了这里的部分意图;能够通过 ViewModel 控制焦点。

0 投票
2 回答
1154 浏览

.net - WPF 应用程序的焦点不稳定

如果我对 WPF 有问题,那么它总是与焦点管理有关。在某些情况下,我的应用程序完全失去了焦点,以至于另一个应用程序获得了焦点,而我的应用程序进入了后台。这主要发生在我的应用程序中的某些窗口将关闭时。这是 WPF 的一个已知问题吗?其他人有类似的问题吗?

我已经为此打开了另一个线程,但是没有人可以提供帮助,也许它有点过于详细。因此,这是简短的版本。

更新

似乎我找到了一个简单的技巧,可以帮助防止我在另一个线程中描述的行为。如果您有同样的问题,请尝试它是否对您有帮助。如果你有一个解释,有一个赏金开放......

我把这篇文章留了几天,可能有人对 WPF 焦点问题有很好的一般输入。可能我不明白它背后的逻辑,但在我明白之前,这确实是 IMO 最糟糕的 WPF 部分(IMO 是一个非常棒的产品)。如果我必须告诉某人我过去几年在 WPF 中遇到的问题,那就是:Focusmgmt、Focusmgmt 和一次 Focusmgmt。

0 投票
3 回答
4254 浏览

wpf - 控制弹出窗口打开和关闭焦点

我有一个弹出窗口,其中包含多个元素、一个列表视图、一个文本框和一个按钮。这些操作正常,如果您使用按钮关闭弹出窗口,它也可以正常工作,但是当我试图在失去焦点时关闭弹出窗口时,当我单击列表视图中的元素时它会关闭。有没有办法解决?FocusManager 属性是要走的路吗?

问候,戴夫

0 投票
3 回答
2395 浏览

flash - 如何使用 fl.managers.FocusManager 在 AS3 中创建多个选项卡循环?

我想在 AS3 Air 项目中创建一个启用选项卡的弹出窗口。目前,当我按 Tab 几次时,焦点会穿过弹出窗口中的所有组件,然后开始关注弹出窗口后面组件中的按钮和 TextField。我试图以两种方式解决这个问题,但都没有奏效。我将在这里解释这两种方法


  1. 我从这里阅读了 adobe 的文档的官方方法,它描述了在我的情况下我应该做的事情,如下所示:

    “每个模态窗口组件都包含一个 FocusManager 的实例,因此该窗口上的控件成为自己的选项卡集。这可以防止用户通过按 Tab 键无意中导航到其他窗口中的组件。”但我还是不明白如何使用焦点管理器。

    • 我尝试通过将下面的代码放入构造函数中,在每个视图组件类中创建 FocusManager 的实例,但它不起作用:

    _focusManager = new FocusManager(this);

    • “模态窗口组件”是什么意思?
  2. 解决方法
    我尝试的另一件事是,当父组件调度 FOCUS_IN 或 FOCUS_OUT 事件时,手动将每个按钮和 TextField 上的 tabEnabled 属性设置为 true 或 false。这适用于我在新闪存文件上创建的一个简单示例,但它不适用于我的大型项目,而且我不知道如何调试它。但是,我很乐意将其转储并返回到方法 1。

有没有人遇到过这些问题?您是否以任何其他方式使用了多个标签循环?现在欢迎任何提示,因为我在这个问题上浪费了太多时间。谢谢[编辑]我对这个问题有很多看法,但没有相关答案,所以我对其进行了编辑并尝试简化它

0 投票
1 回答
4558 浏览

apache-flex - 在标题窗口 Flex 中使用选项卡焦点管理器

当我按下 Tab 键时,我正在努力解决我的应用程序中不断抛出的错误。

我有一个模式对话框,其中包含一个带有 3 个表单项的表单。每当我按下选项卡按钮时,flex 都会抛出一个错误说

“ArgumentError:错误 #2025:提供的 DisplayObject 必须是调用者的子对象。”

我尝试在标题窗口的初始化处理程序中设置焦点管理器无济于事

错误输出

完整标题窗口代码

0 投票
2 回答
2581 浏览

wpf - 无法设置元素的焦点

我有一个扩展器,它的内容由 a 组成,StackPanel其中包含几个元素,其中一个是TextBox.

我想,当Expander扩展TextBox应该获得键盘焦点时,我该怎么做?

我试过了:

我什至尝试将FocusManager.IsFocusableand设置FocusManager.FocusedElementTextBox, 然后调用stackPanel.Focus(),但它没有完成这项工作。