Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby wyświetlić informacje, możesz użyć paska stanu programu Visual Studio w dolnej części środowiska IDE.
Po rozszerzeniu paska stanu można wyświetlić informacje i interfejs użytkownika w czterech regionach: region opinii, pasek postępu, region animacji i region projektanta. Region opinii umożliwia wyświetlanie tekstu i wyróżnianie wyświetlanego tekstu. Pasek postępu pokazuje przyrostowy postęp dla krótko działających operacji, takich jak zapisywanie pliku. W regionie animacji jest wyświetlana animacja w pętli ciągłej dla długotrwałych operacji lub operacji o nieokreślonej długości, takiej jak kompilowanie wielu projektów w rozwiązaniu. W obszarze projektanta wyświetlana jest linia i numer kolumny lokalizacji kursora.
Pasek stanu można uzyskać przy użyciu interfejsu IVsStatusbar (z SVsStatusbar usługi). Ponadto każdy obiekt znajdujący się w ramce okna może zarejestrować się jako obiekt klienta paska stanu przez zaimplementowanie interfejsu IVsStatusbarUser . Za każdym razem, gdy zostanie aktywowane okno, program Visual Studio wysyła zapytanie do obiektu znajdującego się w tym oknie dla interfejsu IVsStatusbarUser . Jeśli zostanie znaleziona, wywołuje metodę SetInfo w zwracanym interfejsie, a obiekt może zaktualizować pasek stanu z poziomu tej metody. Okna dokumentów mogą na przykład użyć metody SetInfo w celu zaktualizowania informacji w obszarze projektanta, gdy staną się aktywne.
Poniższe procedury zakładają, że rozumiesz, jak utworzyć projekt VSIX i dodać niestandardowe polecenie menu. Aby uzyskać informacje, zobacz Create an extension with a menu command (Tworzenie rozszerzenia za pomocą polecenia menu).
Modyfikowanie paska stanu
Ta procedura pokazuje, jak ustawić i pobrać tekst, wyświetlić tekst statyczny i wyróżnić wyświetlany tekst w regionie opinii paska stanu.
Odczyt i zapis na pasku stanu
Utwórz projekt VSIX o nazwie TestStatusBarExtension i dodaj polecenie menu o nazwie TestStatusBarCommand.
W TestStatusBarCommand.cs zastąp kod metody obsługi poleceń (
MenuItemCallback) następującym kodem: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(); }Skompiluj kod i rozpocznij debugowanie.
Otwórz menu Narzędzia w eksperymentalnym wystąpieniu programu Visual Studio. Wybierz przycisk Invoke TestStatusBarCommand.
Tekst na pasku stanu teraz pokazuje, że właśnie napisaliśmy na pasku stanu. A wyświetlane pole komunikatu używa tego samego tekstu.
Aktualizowanie paska postępu
Poniższa procedura pokazuje, jak zainicjować i zaktualizować pasek postępu.
Otwórz plik TestStatusBarCommand.cs i zastąp metodę
MenuItemCallbacknastępującym kodem: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); }Skompiluj kod i rozpocznij debugowanie.
Otwórz menu Narzędzia w eksperymentalnym wystąpieniu programu Visual Studio. Wybierz przycisk Invoke TestStatusBarCommand (Wywołaj testStatusBarCommand ).
Tekst na pasku stanu zawiera teraz tekst Zapisywanie na pasku postępu. Pasek postępu jest aktualizowany co sekundę przez 20 sekund, a paski stanu i postępu są czyszczone.
Wyświetlanie animacji
Na pasku stanu jest wyświetlana animacja pętli wskazująca długotrwałą operację (na przykład tworzenie wielu projektów w rozwiązaniu). Jeśli ta animacja nie jest widoczna, upewnij się, że masz odpowiednie ustawienia Opcji narzędzi>:
Otwórz okienko Narzędzia>Opcje i rozwiń sekcję Wszystkie ustawienia>Środowisko>Doświadczenie wizualne>Efekty.
W obszarze Włącz zaawansowane środowisko wizualizacji klienta wybierz pozycję Automatyczne (włącz tylko wtedy, gdy jest to zalecane)..
Otwórz okno dialogowe Opcje narzędzi> i rozwiń sekcjęOgólne środowisko>.
Wyczyść pole wyboru Automatycznie dostosuj środowisko wizualne na podstawie wydajności klienta .
Zaznacz pole wyboru Włącz zaawansowane środowisko wizualne klienta.
Kliknij przycisk OK.
Animacja jest teraz wyświetlana podczas kompilowania projektu w eksperymentalnym wystąpieniu programu Visual Studio.
W tej procedurze pokazano, jak wyświetlić standardową animację programu Visual Studio, która reprezentuje tworzenie projektu lub rozwiązania.
Otwórz plik TestStatusBarCommand.cs i zastąp metodę
MenuItemCallbacknastępującym kodem: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); }Skompiluj kod i rozpocznij debugowanie.
Otwórz menu Narzędzia w eksperymentalnym wystąpieniu programu Visual Studio i wybierz przycisk Wywołaj testStatusBarCommand .
Po wyświetleniu pola komunikatu animacja powinna być również widoczna na pasku stanu po prawej stronie. Po odrzuceniu pola komunikatu animacja zniknie.