10

我不明白 TextCompositionEventArgs 类。

有名为 ControlText、SystemText、Text 的字符串类型的成员。然后是一个字段 TextConmposistion,它本身又包含成员 ControlText、SystemText 和 Text,另外还有字段 SystemCompositionText 和 CompositionText。

public class TextCompositionEventArgs : InputEventArgs
{
  ..
  public string ControlText { get; }
  public string SystemText { get; }
  public string Text { get; }
  public TextComposition TextComposition { get; }
}

public class TextComposition : DispatcherObject
{
  ..
  public string CompositionText { get; protected set; }
  public string ControlText { get; protected set; }
  public string SystemCompositionText { get; protected set; }
  public string SystemText { get; protected set; }
  public string Text { get; protected set; }
}

两个 Text 成员似乎都包含使用键盘键入的文本,所有其他字段都包含空字符串。

这些领域在哪些方面有所不同,它们有什么用?

4

1 回答 1

14

TextCompositionEventArgs 在撰写文本时处理更改,因此它具有许多处理文本的属性以及具体更改的内容,以及如何使用它取决于您正在处理的事件。

要了解的基本内容:

  • 文本:这包含导致事件的实际文本 - 通常是用户输入的文本

  • SystemText:这包含系统文本事件,即:如果您按 Alt+字母,您将在此处看到该事件。这通常是不会影响文本框等控件中的文本的击键。

  • ControlText:这是控制文本事件,即:如果你按 Ctrl+字母,你会在这里看到它。类似于 SystemText。

通常,如果您只是在寻找标准的“文本”事件,您只需要查看“文本”属性。有关详细信息,请参阅输入概述

于 2009-09-09T20:33:08.093 回答