Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Hay varios mecanismos para mostrar las notificaciones al usuario de la extensión. Elegir la derecha puede ser difícil, así que echemos un vistazo a las opciones.
- Barra de estado
- Barra de información
- Cuadro de mensaje
- Resultados (ventana)
Se usan para diferentes propósitos y tienen diferentes niveles de demanda en la atención de los usuarios.
Use la barra de estado para informar al usuario de un evento que no requiere ninguna acción o entrada del usuario. Si pierden la notificación en la barra de estado, es correcto, no fue fundamental para que lo vean.
Si quieres llamar la atención del usuario y presentarles algunas acciones para que realicen, usa la barra de información. No tienen que hacerlo de inmediato, pueden esperar hasta que se hagan con lo que están haciendo. La notificación es importante, pero no crítica.
Cuando la notificación debe impedir que el usuario actual continúe con lo que está haciendo, use un cuadro de mensaje. Se trata de una notificación de bloqueo y crítica.
Para informar al usuario sobre errores no críticos, use la ventana de salida. Puede centrarse en la ventana de salida si desea asegurarse de que los usuarios lo ven, pero se recomienda que no lo vea.
Barra de estado
Una barra de estado es un área en la parte inferior de una ventana principal que muestra información sobre el estado de la ventana actual (por ejemplo, lo que se está viendo y cómo), las tareas en segundo plano (como la impresión, el examen y el formato) u otra información contextual (como el estado de selección y teclado).
Use la barra de estado cuando no necesite prestar toda la atención al usuario, pero aún así proporcionar información.
Establecer el texto
Esto establecerá el texto de la barra de estado en cualquier cadena.
// call it from an async context
await VS.StatusBar.ShowMessageAsync("My text");
// or from a synchronous method:
VS.StatusBar.ShowMessageAsync("My text").FireAndForget();
Icono de animación
Agregar un icono de animación a la barra de estado es fácil.
Solo tiene que especificar qué icono de animación se va a usar.
// call it from an async context
await VS.StatusBar.StartAnimationAsync(StatusAnimation.Sync);
// or from a synchronous method:
VS.StatusBar.StartAnimationAsync(StatusAnimation.Sync).FireAndForget();
Vuelva a detener la animación llamando a EndStatusbarAnimationAsync
.
// call it from an async context
await VS.StatusBar.EndAnimationAsync(StatusAnimation.Sync);
// or from a synchronous method:
VS.StatusBar.EndAnimationAsync(StatusAnimation.Sync).FireAndForget();
Barra de información
Una barra de información es una barra amarilla en la parte superior de una ventana de herramientas o documentos. Es útil para captar la atención del usuario sin bloquearlos. Una barra de información puede contener un icono, texto y varios hipervínculos.
Aquí se muestra cómo agregar una barra de información a la ventana de herramientas de Explorador de soluciones.
var model = new InfoBarModel(
new[] {
new InfoBarTextSpan("The text in the Info Bar. "),
new InfoBarHyperlink("Click me")
},
KnownMonikers.PlayStepGroup,
true);
InfoBar infoBar = VS.InfoBar.CreateInfoBar(ToolWindowGuids80.SolutionExplorer, model);
infoBar.ActionItemClicked += InfoBar_ActionItemClicked;
await infoBar.TryShowInfoBarUIAsync();
...
private void InfoBar_ActionItemClicked(object sender, InfoBarActionItemEventArgs e)
{
ThreadHelper.ThrowIfNotOnUIThread();
if (e.ActionItem.Text == "Click me")
{
// do something
}
}
Para agregar una barra de información a una ventana de documento, simplemente pase un nombre de archivo de un documento abierto al VS.Notifications.CreateInfoBar(fileName, model)
método .
Si desea la barra de información directamente en un ITextView
, puede hacerlo con este método de extensión útil:
InfoBar infoBar = textView.CreateInfoBar(model);
Cuadro de mensaje
Hay varias maneras de mostrar un cuadro de mensaje mediante .NET. Por ejemplo, a través de Windows Forms o WPF. Provocan algunos problemas en las extensiones de Visual Studio con el elemento primario correctamente en la ventana principal, por lo que se recomienda usar el cuadro de mensaje propio de Visual Studio.
Use un cuadro de mensaje cuando necesite bloquear la interfaz de usuario para obtener toda la atención del usuario.
// Simple text box
VS.MessageBox.Show("Title", "The message");
// Async and with buttons defined
await VS.MessageBox.ShowAsync("Title", "The message", OLEMSGICON.OLEMSGICON_INFO, OLEMSGBUTTON.OLEMSGBUTTON_OKCANCEL);
Resultados (Ventana)
Use la ventana de salida para mostrar información sobre excepciones y otra información textual.
Crear un panel de ventana de salida personalizado y escribir en él es sencillo al usar el VS.Windows.CreateOutputWindowPaneAsync
método .
OutputWindowPane pane = await VS.Windows.CreateOutputWindowPaneAsync("Name of pane");
await pane.WriteLineAsync("Line 1");
await pane.WriteLineAsync("Line 2");
await pane.WriteLineAsync("Line 3");
Consulte la receta control de errores para obtener más información sobre el registro de excepciones.