Pregunta

No entiendo la clase TextCompositionEventArgs.

Hay miembros de tipo cadena llamados ControlText, SystemText, Text. Luego hay un campo TextConmposistion que contiene los miembros ControlText, SystemText y Text nuevamente y adicionalmente los campos SystemCompositionText y 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; }
}

Ambos miembros de Texto parecen contener el texto escrito con el teclado, todos los demás campos contienen cadenas vacías.

¿De qué manera difieren estos campos y para qué sirven?

¿Fue útil?

Solución

TextCompositionEventArgs se ocupa de los cambios al redactar el texto, por lo que tiene muchas propiedades relacionadas con el texto y qué está cambiando específicamente, y cómo lo use depende de los eventos que maneje.

Las cosas básicas para entender:

  • Texto: contiene el texto real que causó el evento, normalmente el texto escrito por el usuario

  • Texto del sistema: contiene eventos de texto del sistema, es decir: si presiona Alt + letra, verá el evento aquí. Normalmente, se trata de pulsaciones de tecla que no afectarían el texto en un control como un cuadro de texto.

  • ControlText: se trata de eventos de texto de control, es decir: si presiona Ctrl + letra, lo verá aquí. Similar a SystemText.

Normalmente, si solo está buscando " texto " eventos, solo querrá ver el " Texto " propiedad. Para obtener detalles, consulte la Descripción general de la entrada .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top