【问题标题】:How can I type half-space in RichTextBox?如何在 RichTextBox 中键入半空格?
【发布时间】:2012-10-18 10:50:26
【问题描述】:

当我按“Shift + Space”在 RichTextBox 中键入半空格(当我用波斯语写作时)时,它只是插入空格。它可以正确输入所有其他波斯字符,但是当涉及“Shift+Space”时,它只输入空格。

这个角色的名字是“ZERO WIDTH NON-JOINER”,信息在这个链接中给出:http://www.fileformat.info/info/unicode/char/200c/index.htm

我应该提到我通过处理 previewKewDown 事件解决了这个问题;但我想知道 RichTextBox 中的这个组合键有什么问题。

谢谢。

【问题讨论】:

  • 你试过改变富文本框的文化吗?
  • @D J. 谢谢,但我认为问题不在于语言或文化
  • TextBox 有同样的问题吗?
  • 是的,在TextBox中也是如此。
  • @Ron,你为什么不认为问题出在语言或文化上?将 Shift+Space 视为 ZWNJ 不是标准的 Windows 行为。默认情况下,Shift+Space 只是空格。如果您在其他地方看到它被视为 ZWNJ,那是因为 某种 类型的语言环境设置。 (或者您只是在与另一个拦截密钥的应用程序进行比较,就像您在 PreviewKeyDown 中所做的那样。)

标签: c# wpf richtextbox


【解决方案1】:

我认为问题在于您在 Windows 中的键盘布局。 Windows 的波斯语键盘布局根本不支持 ZWNJ。如果您使用来自Persian Computing Community Site伊朗标准波斯语键盘 (ISIRI 9147)(2.0 版),它将可用。

【讨论】:

  • 谢谢,但我正在使用这个布局
【解决方案2】:

我认为需要将此功能编程为控件的一部分(RichTextBox 或某些继承的类),但情况似乎并非如此。

我在 another website 上找到的另一种选择是按 Alt + 0157(使用启用了 NumLock 的键盘输入每个数字,一次一个),尽管这不如覆盖previewKewDown 事件的解决方案。

【讨论】:

    【解决方案3】:

    我遇到了同样的问题,并通过处理 PreviewKeyDown 事件在代码隐藏中解决了问题。 只是想补充一点,我对此事的一点研究让我认为基础Run 元素上的xml:space 属性可能是问题的原因。 了解如何在 XAML here 中处理空格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-24
      • 2018-11-07
      • 1970-01-01
      • 2018-10-14
      • 2013-11-23
      • 2011-05-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多