Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Você pode usar a barra de status do Visual Studio na parte inferior do IDE para exibir informações.
Ao estender a barra de status, você pode exibir informações e a interface do usuário em quatro regiões: a região de feedback, a barra de progresso, a região de animação e a região do designer. A região de comentários permite que você exiba texto e realce o texto exibido. A barra de progresso mostra o progresso incremental para operações de execução curta, como salvar um arquivo. A região de animação exibe uma animação em loop contínuo para operações de longa duração ou operação de duração indeterminada, como a criação de vários projetos em uma solução. E a região do designer mostra o número da linha e da coluna da posição do cursor.
Você pode obter a barra de status usando a IVsStatusbar interface (do SVsStatusbar serviço). Além disso, qualquer objeto localizado em um quadro de janela pode se registrar como um objeto cliente da barra de status implementando a IVsStatusbarUser interface. Sempre que uma janela é ativada, o Visual Studio consulta o objeto localizado nessa janela para a IVsStatusbarUser interface. Se encontrado, ele chama o SetInfo método na interface retornada e o objeto pode atualizar a barra de status de dentro desse método. As janelas de documentos, por exemplo, podem usar o SetInfo método para atualizar informações na região do designer quando se tornam ativas.
Os procedimentos a seguir pressupõem que você entenda como criar um projeto VSIX e adicionar um comando de menu personalizado. Para obter informações, consulte Criar uma extensão com um comando de menu.
Modificar a barra de estado
Este procedimento mostra como definir e obter texto, exibir texto estático e realçar o texto exibido na região de comentários da barra de status.
Ler e escrever na barra de estado
Crie um projeto VSIX chamado TestStatusBarExtension e adicione um comando de menu chamado TestStatusBarCommand.
No TestStatusBarCommand.cs, substitua o código do método do manipulador de comandos (
MenuItemCallback) pelo seguinte: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(); }Compile o código e inicie a depuração.
Abra o menu Ferramentas na instância experimental do Visual Studio. Selecione o botão Invocar TestStatusBarCommand .
O texto na barra de estado agora mostra Acabámos de escrever na barra de estado. e a caixa de mensagem que aparece usa o mesmo texto.
Atualizar a barra de progresso
O procedimento seguinte mostra como inicializar e atualizar a barra de progresso.
Abra o arquivo TestStatusBarCommand.cs e substitua o
MenuItemCallbackmétodo com o seguinte código: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); }Compile o código e inicie a depuração.
Abra o menu Ferramentas na instância experimental do Visual Studio. Selecione o botão Invocar TestStatusBarCommand.
O texto na barra de estado agora mostra Escrita na barra de progresso. A barra de progresso atualiza-se a cada segundo durante 20 segundos, e as barras de estado e progresso são apagadas.
Exibir uma animação
A barra de estado exibe uma animação repetitiva que indica uma operação de longa duração (por exemplo, a compilação de vários projetos numa solução). Se não vires esta animação, certifica-te de que tens as definições corretasde Opções de >:
Abra o painel Ferramentas>Opções e expanda a secção Todas as Definições>Ambiente>Experiência Visual>Efeitos.
Em Ativar experiência visual rica do cliente, selecione Automático (Ativar apenas quando recomendado).
Abra a caixade diálogo Opções de > e expanda a seçãoGeral do >.
Desmarque a caixa de seleção Ajustar automaticamente a experiência visual com base no desempenho do cliente.
Selecione a caixa de seleção da subopção Ativar experiência visual rica do cliente.
Selecione OK.
A animação agora é exibida quando constróis o projeto na tua instância experimental do Visual Studio.
Este procedimento mostra como mostrar a animação padrão do Visual Studio, que representa a construção de um projeto ou solução.
Abra o arquivo TestStatusBarCommand.cs e substitua o
MenuItemCallbackmétodo com o seguinte código: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); }Compile o código e inicie a depuração.
Abra o menu Ferramentas na instância experimental do Visual Studio e selecione o botão Invocar TestStatusBarCommand .
Quando vir a caixa de mensagem, também deverá ver a animação na barra de estado na extremidade direita. Quando você descarta a caixa de mensagem, a animação desaparece.