【问题标题】:IsTabStop="False" has no effect on my WPF appIsTabStop="False" 对我的 WPF 应用程序没有影响
【发布时间】:2011-07-02 00:36:27
【问题描述】:

我很难处理一些本应是微不足道的事情。我只想从 UserControl 上的选项卡顺序中删除几个按钮。我尝试将IsTabStop="False"KeyboardNavigation.IsTabStop="False" 属性添加到他们的xaml 声明中,并在UserControl 的Loaded 事件处理程序中设置myButton.IsTabStop = false;。这些添加都没有任何效果,我仍然可以标签到我这样做的控件。

在 xaml 中设置 TabIndex 可以正常工作。如果这可能会有所不同,则 UserControl 将显示在 WPFElementHost 中。我的另一个想法是我可能需要为所有其他控件指定 TabIndex,但我还没有在任何地方阅读过,如果可能的话,我宁愿不明确说明这一点。有没有人猜测可能出了什么问题?

【问题讨论】:

  • 设置Focusable="False" 有什么不同吗?
  • 通常 IsTabStop 工作正常,没有 ElementHost
  • 好主意,但Focusable="False" 并没有改变行为。我仍然可以选择有问题的按钮。另外,我尝试将它与IsTabStop="False" 属性结合使用,以及单独使用它。
  • 所以我意识到我试图从标签顺序中删除的按钮实际上是嵌套在自定义 UserControls 中的按钮,所以我设置了 UserControls 的 IsTabStop 属性,但内部按钮不知道的变化。这解决了部分问题,但我仍然无法从选项卡顺序中删除几个 ListBox - 他们忽略了我的尝试。
  • 类似场景:ListBox。虽然为空,但 .IsTabStop=false 足以将其从制表符序列中排除。一旦分配了它的.ItemsSource,它就会被包括在内。然后数据被重置,不按顺序;然后再次设置数据 - 它在里面。一次又一次..另外设置.Focusable=false没有效果。

标签: c# wpf tabstop


【解决方案1】:

尝试在父控件中设置KeyboardNavigation.TabNavigation ="None"

【讨论】:

  • 这将禁用所有制表位 - 当某些元素应该被制表符击中时不可用。
【解决方案2】:

您还需要雇用 KeyboardNavigation.TabNavigation ="Continue" 用于父控件,以及

"Focusable=False" 

【讨论】:

    猜你喜欢
    • 2013-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多