Partager via


Étendre la barre d’état

Vous pouvez utiliser la barre d’état de Visual Studio en bas de l’IDE pour afficher des informations.

Lorsque vous étendez la barre d’état, vous pouvez afficher des informations et une interface utilisateur dans quatre régions : la région de commentaires, la barre de progression, la région d’animation et la région du concepteur. La région de commentaires vous permet d’afficher du texte et de mettre en surbrillance le texte affiché. La barre de progression affiche une progression incrémentielle pour les opérations de courte durée, telles que l’enregistrement d’un fichier. La région d’animation affiche une animation en boucle continue pour les opérations de longue durée ou l’opération de longueur indéterminée, comme la création de plusieurs projets dans une solution. Et la région du concepteur affiche le numéro de ligne et de colonne de l’emplacement du curseur.

Vous pouvez obtenir la barre d’état à l’aide de l’interface IVsStatusbar (à partir du SVsStatusbar service). En outre, n’importe quel objet sitené sur un cadre de fenêtre peut s’inscrire en tant qu’objet client de barre d’état en implémentant l’interface IVsStatusbarUser . Chaque fois qu’une fenêtre est activée, Visual Studio interroge l’objet sitené sur cette fenêtre pour l’interface IVsStatusbarUser . Si elle est trouvée, elle appelle la SetInfo méthode sur l’interface retournée et l’objet peut mettre à jour la barre d’état à partir de cette méthode. Les fenêtres de document, par exemple, peuvent utiliser la SetInfo méthode pour mettre à jour les informations dans la région du concepteur lorsqu’elles deviennent actives.

Les procédures suivantes supposent que vous comprenez comment créer un projet VSIX et ajouter une commande de menu personnalisée. Pour plus d’informations, consultez Créer une extension avec une commande de menu.

Modifier la barre d’état

Cette procédure vous montre comment définir et obtenir du texte, afficher du texte statique et mettre en surbrillance le texte affiché dans la zone de commentaires de la barre d’état.

Lire et écrire dans la barre d’état

  1. Créez un projet VSIX nommé TestStatusBarExtension et ajoutez une commande de menu nommée TestStatusBarCommand.

  2. Dans TestStatusBarCommand.cs, remplacez le code de méthode de gestionnaire de commandes (MenuItemCallback) par les éléments suivants :

    private void MenuItemCallback(object sender, EventArgs e)
    {
        IVsStatusbar statusBar = (IVsStatusbar)ServiceProvider.GetService(typeof(SVsStatusbar));
    
        // Make sure the status bar is not frozen
        int frozen;
    
        statusBar.IsFrozen(out frozen);
    
        if (frozen != 0)
        {
            statusBar.FreezeOutput(0);
        }
    
        // Set the status bar text and make its display static.
        statusBar.SetText("We just wrote to the status bar.");
    
        // Freeze the status bar.
        statusBar.FreezeOutput(1);
    
        // Get the status bar text.
        string text;
        statusBar.GetText(out text);
        System.Windows.Forms.MessageBox.Show(text);
    
        // Clear the status bar text.
        statusBar.FreezeOutput(0);
        statusBar.Clear();
    }
    
  3. Compilez le code et démarrez le débogage.

  4. Ouvrez le menu Outils dans l’instance expérimentale de Visual Studio. Cliquez sur le bouton Invoke TestStatusBarCommand .

    Vous devriez voir que le texte de la barre d’état lit maintenant que nous venons d’écrire dans la barre d’état. Et la zone de message qui s’affiche a le même texte.

Mettre à jour la barre de progression

  1. Dans cette procédure, nous allons montrer comment initialiser et mettre à jour la barre de progression.

  2. Ouvrez le fichier TestStatusBarCommand.cs et remplacez la MenuItemCallback méthode par le code suivant :

    private void MenuItemCallback(object sender, EventArgs e)
    {
        IVsStatusbar statusBar = (IVsStatusbar)ServiceProvider.GetService(typeof(SVsStatusbar));
        uint cookie = 0;
        string label = "Writing to the progress bar";
    
        // Initialize the progress bar.
        statusBar.Progress(ref cookie, 1, "", 0, 0);
    
        for (uint i = 0, total = 20; i <= total; i++)
        {
            // Display progress every second.
            statusBar.Progress(ref cookie, 1, label, i, total);
            System.Threading.Thread.Sleep(1000);
        }
    
        // Clear the progress bar.
        statusBar.Progress(ref cookie, 0, "", 0, 0);
    }
    
  3. Compilez le code et démarrez le débogage.

  4. Ouvrez le menu Outils dans l’instance expérimentale de Visual Studio. Cliquez sur Appeler le bouton TestStatusBarCommand .

    Vous devez voir que le texte de la barre d’état lit désormais Écriture dans la barre de progression. Vous devez également voir que la barre de progression est mise à jour toutes les secondes pendant 20 secondes. Après cela, la barre d’état et la barre de progression sont effacées.

Afficher une animation

  1. La barre d’état affiche une animation en boucle qui indique une opération longue (par exemple, génération de plusieurs projets dans une solution). Si vous ne voyez pas cette animation, vérifiez que vous disposez des paramètres d’options d’outils>appropriés :

    Accédez à l’onglet Général des options>d’outils>et annulez case activée ajustez automatiquement l’expérience visuelle en fonction des performances du client. Ensuite, case activée la sous-option Activer une expérience visuelle client enrichie. Vous devez maintenant voir l’animation lorsque vous générez le projet dans votre instance expérimentale de Visual Studio.

    Dans cette procédure, nous affichons l’animation Visual Studio standard qui représente la génération d’un projet ou d’une solution.

  2. Ouvrez le fichier TestStatusBarCommand.cs et remplacez la MenuItemCallback méthode par le code suivant :

    private void MenuItemCallback(object sender, EventArgs e)
    {
        IVsStatusbar statusBar =(IVsStatusbar)ServiceProvider.GetService(typeof(SVsStatusbar));
    
        // Use the standard Visual Studio icon for building.
        object icon = (short)Microsoft.VisualStudio.Shell.Interop.Constants.SBAI_Build;
    
        // Display the icon in the Animation region.
        statusBar.Animation(1, ref icon);
    
        // The message box pauses execution for you to look at the animation.
        System.Windows.Forms.MessageBox.Show("showing?");
    
        // Stop the animation.
        statusBar.Animation(0, ref icon);
    }
    
  3. Compilez le code et démarrez le débogage.

  4. Ouvrez le menu Outils dans l’instance expérimentale de Visual Studio, puis cliquez sur Invoke TestStatusBarCommand.

    Lorsque vous voyez la boîte de message, vous devez également voir l’animation dans la barre d’état à l’extrême droite. Lorsque vous ignorez la boîte de message, l’animation disparaît.