我不懂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成员似乎都包含键盘输入的文本,所有其他字段都包含空字符串。
这些字段以哪种方式有所不同?它们有什么用?
答案 0 :(得分:11)
TextCompositionEventArgs在编写文本时处理更改,因此它有许多处理文本的属性以及具体更改的内容,以及如何使用它取决于您正在处理的事件。
基本要理解的事情:
文字:这包含导致事件的实际文本 - 通常是用户输入的文字
SystemText:这包含系统文本事件,即:如果你点击Alt +字母,你会在这里看到这个事件。这通常是击键,不会影响控件中的文本,如文本框。
ControlText:这是控制文本事件,即:如果你按Ctrl +字母,你会在这里看到它。与SystemText类似。
通常,如果您只是在寻找标准的“文本”事件,那么您只需要查看“文本”属性即可。有关详细信息,请参阅Input Overview。