2011-02-12 24 views
14

En el editor de texto de Visual Studio C#, cuando desee una propiedad, simplemente escriba prop y luego presione la pestaña DOS VECES para obtener un "fragmento"/plantilla para una propiedad. Tanto el Tipo como el nombre de la propiedad están resaltados. Presiona tabulador cuando desea cambiar entre tipo y propiedad, luego presiona Enter cuando haya terminado y su cursor saltará al final de la propiedad.Visual Studio 2010 XAML Editor torpe IntelliSense?

En el editor XAML de WPF, presionar "Enter" creará un salto de línea. Al igual que si escribe lo siguiente:

<TextBox x: 

y cuando se selecciona la propiedad "Nombre" de la IntelliSense, se le dará el siguiente:

<TextBox x:Name="_" 

_ representa la ubicación actual del cursor.

Proporcione al nombre un valor, diga textbox, luego presione Enter. En este punto, espero que mi cursor salte al final de este modo:

<TextBox x:Name="textbox"_ 

sino que se crea un salto de línea, así:

<TextBox x:Name="textbox 
      _" 

Este comportamiento es molesto conmigo. En lugar de presionar Enter, presionaré la tecla End.

¿Cómo obtengo mi comportamiento deseado?

PD: Soy nuevo en WPF y XAML.

+1

El comportamiento que describe en C# es verdadero para los fragmentos de código, pero no para el Intellisense estándar. Siempre he supuesto que debes usar las teclas de flecha en el marcado XAML. Me gustaría saber si hay una mejor manera. –

+1

Desearía que ya arreglaran esta maldita cosa. –

+0

de acuerdo. Este es un gran dolor –

Respuesta

7

Eso siempre me ha molestado también. Una opción es crear una macro simple.

  1. Escriba su etiqueta XAML y asígnele un nombre. (En este punto, el cursor se encuentra dentro de las comillas del atributo.)
  2. Presione Ctrl-Shift-R para iniciar la grabación de macros.
  3. Presione Fin, y luego Ingrese. (Ahora el cursor está donde desea que esté.)
  4. Presione Ctrl-Shift-R nuevamente para detener la grabación de macro.

Si usted sigue los pasos anteriores, Visual Studio se habrá generado el código de macro, que se puede ver si se pulsa Alt-F8 y RecordingModule.TemporaryMacro abierta:

DTE.ActiveDocument.Selection.EndOfLine() 
DTE.ActiveDocument.Selection.NewLine() 

Puede ahora ejecute esta macro con Ctrl-Shift-P, pero es solo una macro temporal en este punto. Debe guardarlo y asignarlo a un atajo de teclado.

  1. Explorador de macros abierta (Alt-F8).
  2. Buscar TemporaryMacro en MyMacros | RecordingModule, y cambiarle el nombre. Tal vez incluso moverlo de RecordingModule a un módulo diferente también.
  3. Abra el menú Herramientas y vaya a Opciones, Entorno, Teclado.
  4. Escriba el nombre de su macro en "Mostrar comandos que contienen".
  5. Seleccione su macro y asígnela tecla (s) de acceso directo. (Elegí Ctrl-Enter.)

Así que ahora, en lugar de mover su mano para presionar Fin y luego Introduzca, sólo puede pulsar Ctrl-Enter .

También grabé otra macro que se mueve al final de la línea y escribe "/>" para mí y la adjunté a Ctrl-/. El código genera VS se ve así:

DTE.ActiveDocument.Selection.EndOfLine() 
DTE.ActiveDocument.Selection.Text = " />" 
DTE.ActiveDocument.Selection.NewLine() 

Una alternativa a todas estas macros es desactivar las comillas automáticas. Abra el menú Herramientas y vaya a Opciones, Editor de texto, XAML, Varios. Desmarque la opción para insertar citas de atributos automáticamente. Entonces no agregará la cita final para usted, y no tendrá que usar las teclas de flecha o End (aunque tendrá que escribir la cita final ahora, por supuesto).

+0

Andrew, gracias! ¿Puedes compartir tu macro? – Ian

+1

He editado mi respuesta para incluir el código de macro generado por Visual Studio. – Andrew

+0

Solo una advertencia para los buscadores de respuestas futuras, las versiones de Visual Studio después de 2010 dejaron de admitir macros. – KevenDenen

7

Otra solución más simple es volver a enlazar la tecla de método abreviado para la operación Editar.PalabraSiguiente.

De manera predeterminada, esto se establece en Ctrl + flecha Derecha. En el estudio visual, vaya a HERRAMIENTAS-> Opciones-> Entorno-> Teclado.

Me gusta vincular esto a Shift + Space para que no tenga que usar las teclas de flecha. Cuando haya terminado de escribir el atributo xaml y el cursor esté en el lado izquierdo de la comilla final, presione Mayús + Espacio y saltará al lado derecho de la marca para que pueda seguir escribiendo el resto de los atributos .

Mucho más fácil que usar una macro.

+0

Dado que Visual Studio 2013 no tiene soporte para macros, esto terminó funcionando maravillosamente para mí. – KevenDenen

Cuestiones relacionadas