10

クラス TextCompositionEventArgs がわかりません。

ControlText、SystemText、Text という文字列型のメンバーがあります。次に、メンバー ControlText、SystemText、および Text を含むフィールド TextConmpostion があり、さらにフィールド 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+letter を押すと、ここにイベントが表示されます。これは通常、テキスト ボックスのようなコントロール内のテキストに影響を与えないキーストロークです。

  • ControlText: これはコントロール テキスト イベントです。つまり、Ctrl+文字を押すと、ここに表示されます。SystemText に似ています。

通常、標準の「テキスト」イベントだけを探している場合は、「テキスト」プロパティを確認するだけです。詳細については、入力の概要を参照してください。

于 2009-09-09T20:33:08.093 に答える