habilitar funciona como silverlight documentation keyboard default behavior

funciona - ¿Hay alguna referencia de comportamiento predeterminado del teclado para los controles de Silverlight 4?



como funciona silverlight (3)

En la documentación oficial de Microsoft, solo hay un párrafo que menciona cómo se comportan los controles con el teclado (al menos, lo que pude encontrar):

http://msdn.microsoft.com/en-us/library/cc189015(v=VS.95).aspx#inputting_text

Entrada de texto y controles

Ciertos controles reaccionan a los eventos del teclado con su propio manejo. Por ejemplo, un TextBox es un control que está diseñado para capturar y luego representar visualmente el texto que se ingresó utilizando el teclado, y utiliza KeyUp y KeyDown en su propia lógica para capturar las pulsaciones de teclas, y luego también aumenta su propio evento TextChanged si el texto realmente cambiado En general, aún puede agregar controladores para KeyUp y KeyDown a un TextBox, o cualquier control relacionado que esté destinado a procesar el ingreso de texto. Sin embargo, como parte de su diseño previsto, un control puede no responder a todos los valores clave que se le envían a través de eventos clave. El comportamiento es específico de cada control. Como ejemplo, ButtonBase (clase base para Button) procesa KeyUp para que pueda verificar la barra ESPACIADORA o la tecla ENTER, que considera equivalente a un botón izquierdo del mouse para fines de generar un evento Click. Este proceso del evento se lleva a cabo mediante ButtonBase anulando el método virtual OnKeyUp, y en su implementación establece Handled = true. El resultado es que cualquier padre de un botón que esté escuchando un evento clave en el caso de una BARRA ESPACIADORA no recibiría el evento ya manejado para sus propios manejadores. Otro ejemplo es TextBox. Algunas teclas como las teclas de FLECHA no se consideran texto por TextBox y, en cambio, se consideran específicas para el comportamiento de la interfaz de usuario de control, y TextBox marca estos casos de eventos como manejados.

Los controles personalizados pueden implementar su propio comportamiento de anulación similar para eventos clave anulando OnKeyDown / OnKeyUp. Si su control personalizado procesa teclas aceleradoras específicas, o tiene un comportamiento de control o enfoque similar al escenario descrito para TextBox, debe colocar esta lógica en sus propias anulaciones OnKeyDown / OnKeyUp.

¿Hay una referencia más completa en cualquier lugar?

Por ejemplo, en un AutoCompleteBox puede navegar a las sugerencias presionando arriba / abajo y elegir una presionando enter, etc, etc.

Seguramente debe haber una forma mejor que enfocar cada control y presionar cada tecla en el teclado para averiguar :)




Mire en el código fuente / Reflector.

Hay muchas peculiaridades en el procesamiento de texto de controles, dudo que a nadie le importe documentar esto. Por ejemplo, el evento KeyDown de TextBox no se activa cuando el usuario presiona BackSpace cuando hay texto dentro del control, pero se dispara cuando no hay texto, etc. La forma más rápida de descubrir cómo funciona algo es buscar en la fuente.

He pensado una buena regla: si por alguna razón necesitas saber cómo se comportará algún control es una situación, no pierdas el tiempo tratando de codificar (reproducir) esta situación, solo consigue Reflector y mira el código fuente.