【问题标题】:WPF: Hotkey on Button does not appear underlined when pressing ALT-KeyWPF:按 ALT 键时,按钮上的热键不显示下划线
【发布时间】:2016-04-17 10:16:19
【问题描述】:

我有一个 WPF 应用程序,其中一个按钮是通过定义的

     <Button Command="{Binding ShowSomeDialog}">
        <AccessText>_Push me</AccessText>
     </Button>

按下 ALT 键时,该按钮不显示带下划线的“P”,但按下 ALT-P 会调用该命令。

在另一个窗口的同一个应用程序中,完全相同的标签的行为与预期的一样,这意味着:当按下 ALT 键时,它会在 P 下划线。

在热键没有下划线的上下文中,按钮嵌套很深。简化的层次结构可以概括为

  1. Window
  2. syncfusion:TabControlExt
  3. syncfusion:TabItemExt
  4. UserControl
  5. syncfusion:TabControlExt
  6. syncfusion:TabItemExt
  7. UserControl
  8. Button

如果在 '4. UserControl' 和 在添加到 '7 时不会被下划线。 UserControl' 或更深。

我找不到任何中间元素的自定义样式,尤其是没有将RecognizesAccessKey 设置为False 的样式。

有人知道要检查什么或在哪里检查吗?

【问题讨论】:

  • 这个按钮是否在任何其他容器内?
  • 是的。它实际上深深嵌套在包含选项卡的 den MDI 容器中,每个选项卡都包含一个包含按钮的用户控件。你的意思是这可能是一些“焦点”相关的问题?
  • 容器有一个RecognizesAccessKey 属性,它会禁用访问密钥功能,请检查您的层次结构并确保它已启用。
  • 感谢您的指导。我仍然无法解决这个问题。每个使用的 ContentPresenter 都将 RecognizesAccessKey 设置为 True。不过,我用其他信息详细说明了这个问题。也许这有帮助。

标签: wpf button keyboard-shortcuts hotkeys


【解决方案1】:

检查您是否在某处重新设计了 Button - 访问键的行为很容易被错误的样式破坏。

顺便说一句,您确实尝试过直接将 Content 属性设置为“_Push me”,而不使用 AccessText,不是吗?

附: MSDN 在这里可能会有所帮助。

【讨论】:

  • 重新设计的按钮也是我的第一个想法。我虽然会暂时删除所有自定义样式,但它仍然不起作用。我想我会再次深入研究。对于直接设置 Content 属性:是的,我试过了,没有运气。
  • 我记得一些使用非标准选项卡控件 (telerik) 的焦点相关问题。您可以尝试在标签页中添加一个文本块和一个按钮,使前者成为焦点,然后按 ALT 吗?我认为 FocusManager 中有一些东西。
【解决方案2】:

使用&lt;AccessText ... Margin="0,0,0,X"/&gt;,其中 X 是一个双精度值,并查看是否出现下划线。

【讨论】:

  • 抱歉,这没有帮助。不过,我明白你的想法。谢谢你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-04
  • 1970-01-01
  • 2013-02-21
  • 1970-01-01
  • 1970-01-01
  • 2014-09-24
相关资源
最近更新 更多