3

Мне известно отображать пользовательский текст в строке состояния Visual Studio с использованием интерфейса IVSStatusBar. У меня даже есть blogged.Можно ли отображать пользовательский значок в строке состояния Visual Studio

Однако у меня есть требование отображать пользовательский значок в строке состояния Visual Studio. Подобно тому, что делает Resharper для отображения ошибок решения. При нажатии на значок также появляется контекстное меню.

Resharper Icon

Так, Как я могу отобразить пользовательский значок в строке состояния Visual Studio, и, если возможно отобразить меню также щелкать его?. Пример поможет.

Анимационный метод IVSStatusBar уже отображает значки, но использует предопределенные значки, определенные в Constants. Возможно ли иметь пользовательские значки и перейти к методу анимации?

При изучении SDK я обнаружил, что интерфейс IVSStatusBarUser может использоваться для отображения пользовательской информации при отображении окна, реализующего этот интерфейс. Но я не уверен, может ли этот интерфейс использоваться для отображения пользовательского значка.

ответ

3

Публикация API для такого типа расширения строки состояния отсутствует. В одном из моих собственных расширений (PerfWatson Monitor) я обнаруживаю элемент строки состояния, просматривая визуальное дерево WPF, используя рекурсивный поиск и VisualTreeHelper, по убыванию от Application.Current.MainWindow, ища захват изменения размера в правом нижнем углу - дочерний элемент с Name свойство установлено в "ResizeGripControl". Когда я нашел захват, я смотрю на его родителя (он должен быть DockPanel) и вставьте мой элемент управления там. Обратите внимание, что, как показывает ваш скриншот, Resharper, как известно, использует подобный трюк, поэтому вам придется разработать стратегию, которая работает с и без установленного Resharper. Также обратите внимание, что некоторые части строки состояния (текст, информация о линии/столбце и любые анимации) запускаются в своем потоке пользовательского интерфейса, поэтому будьте осторожны, если ваш элемент управления окажется там.

Я замечаю, что вы также спрашиваете о расширении существующей анимации. Да, вы можете предоставить свои собственные анимации через растровую полосу 16x16 кадров. См. Пример http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/fef208e7-b79d-4a0c-94fe-e6861196e1f5/#ba47b61c-77a8-46c8-aa10-a04211312e6c. К сожалению, это не позволит использовать интерактивное меню.

Смежные вопросы