Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Для отображения сведений можно использовать строку состояния Visual Studio в нижней части интегрированной среды разработки.
При расширении строки состояния можно отобразить сведения и пользовательский интерфейс в четырех регионах: область отзывов, индикатор хода выполнения, область анимации и область конструктора. Область отзывов позволяет отображать текст и выделять отображаемый текст. На панели выполнения отображается добавочный ход выполнения для коротких операций, таких как сохранение файла. Область анимации отображает непрерывно циклизованную анимацию для длительных операций или операций с неопределенной длиной, например создание нескольких проектов в решении. А в области конструктора отображается номер строки и столбца расположения курсора.
Строку состояния можно получить с помощью IVsStatusbar интерфейса (из SVsStatusbar службы). Кроме того, любой объект, размещенный в кадре окна, может зарегистрировать в качестве клиентского объекта строки состояния, реализуя IVsStatusbarUser интерфейс. При активации окна Visual Studio запрашивает объект, размещенный в этом окне для IVsStatusbarUser
интерфейса. При обнаружении метод вызывает SetInfo метод в возвращаемом интерфейсе, а объект может обновить строку состояния из этого метода. Например, окна документов могут использовать SetInfo метод для обновления сведений в регионе конструктора при их активности.
В следующих процедурах предполагается, что вы понимаете, как создать проект VSIX и добавить настраиваемую команду меню. Дополнительные сведения см. в разделе "Создание расширения" с помощью команды меню.
Изменение строки состояния
В этой процедуре показано, как задать и получить текст, отобразить статический текст и выделить отображаемый текст в области отзывов строки состояния.
Чтение и запись в строку состояния
Создайте проект VSIX с именем TestStatusBarExtension и добавьте команду меню с именем TestStatusBarCommand.
В TestStatusBarCommand.cs замените код метода обработчика команд следующим
MenuItemCallback
образом: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(); }
Скомпилируйте код и запустите отладку.
Откройте меню "Сервис" в экспериментальном экземпляре Visual Studio. Нажмите кнопку Invoke TestStatusBarCommand .
Вы должны увидеть, что текст в строке состояния теперь считывает только что написанную в строке состояния. В появившемся поле сообщения есть тот же текст.
Обновление индикатора выполнения
В этой процедуре мы покажем, как инициализировать и обновить индикатор выполнения.
Откройте файл TestStatusBarCommand.cs и замените
MenuItemCallback
метод следующим кодом: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); }
Скомпилируйте код и запустите отладку.
Откройте меню "Сервис" в экспериментальном экземпляре Visual Studio. Нажмите кнопку Invoke TestStatusBarCommand .
Вы увидите, что текст в строке состояния теперь считывает запись в строку хода выполнения. Вы также увидите, что индикатор хода выполнения обновляется каждые секунды в течение 20 секунд. После этого будет снята строка состояния и индикатор выполнения.
Отображение анимации
В строке состояния отображается анимация циклического цикла, указывающая либо длительную операцию (например, создание нескольких проектов в решении). Если эта анимация не отображается, убедитесь, что у вас есть правильные параметры параметров инструментов>:
Перейдите на вкладку "Общие параметры>инструментов>" и un проверка Автоматически настраивайте визуальный интерфейс на основе производительности клиента. Затем проверка вложенный параметр Включить расширенный визуальный интерфейс клиента. Теперь вы сможете увидеть анимацию при сборке проекта в экспериментальном экземпляре Visual Studio.
В этой процедуре мы отображаем стандартную анимацию Visual Studio, представляющую создание проекта или решения.
Откройте файл TestStatusBarCommand.cs и замените
MenuItemCallback
метод следующим кодом: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); }
Скомпилируйте код и запустите отладку.
Откройте меню "Сервис" в экспериментальном экземпляре Visual Studio и нажмите кнопку Invoke TestStatusBarCommand.
При отображении поля сообщения также должна появиться анимация в строке состояния справа. При закрытии поля сообщения анимация исчезает.