Можно ли отображать пользовательский значок в строке состояния Visual Studio

Мне известно об отображении пользовательского текста в строке состояния Visual Studio с помощью IVSStatusBar. У меня есть даже записал об этом.

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

Значок решарпера

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

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

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




Ответы (1)


Для такой расширяемости строки состояния нет опубликованного 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 для примера. К сожалению, это не позволит интерактивным меню.

person pharring    schedule 18.05.2015