سؤال

أنا لا أفهم فئة TextCompositionEventArgs.

هناك أعضاء من نوع string اسمه ControlText,SystemText النص.ثم هناك مجال TextConmposistion نفسها تحتوي على أعضاء ControlText, SystemText النص مرة أخرى بالإضافة إلى حقول 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; }
}

كل من النص أعضاء يبدو أن تحتوي على النص المكتوب مع لوحة المفاتيح, جميع مجالات أخرى تحتوي على سلاسل فارغة.

في الطريقة التي تفعل هذه الحقول تختلف وما هي جيدة ؟

هل كانت مفيدة؟

المحلول

TextCompositionEventArgs يتعامل مع التغييرات أثناء كتابة النص ، لذلك لديه العديد من الخصائص للتعامل مع النص على وجه التحديد ما هو التغير و كيفية استخدامه يعتمد على ما هي الأحداث التي المناولة.

الأشياء الأساسية لفهم:

  • النص:يحتوي هذا أن النص الفعلي الذي تسبب في الحدث - عادة المستخدم بكتابة النص

  • SystemText:هذا يحتوي على نص نظام الأحداث ، أي:إذا كنت ضرب Alt+الرسالة سوف ترى حدث هنا.هذا هو عادة ضغطات المفاتيح التي لا تأثير النص في عنصر تحكم مثل مربع نص.

  • ControlText:هذا هو النص التحكم في الأحداث ، أي:إذا كنت تضغط على زر Ctrl+حرف, سوف نرى ذلك هنا.على غرار SystemText.

عادة إذا كنت تبحث فقط عن مستوى "النص" الأحداث, عليك فقط أن ننظر إلى "النص" الملكية.للحصول على التفاصيل ، انظر مساهمة عامة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top