Практическое руководство. Изменение параметров окон
Надстройки Visual Studio выступан сопоставления в Visual Studio 2013. Необходимо обновить для надстройки с расширениями VSPackage. Дополнительные сведения об обновлении см. в разделе Часто задаваемые вопросы. Преобразование надстроек в расширения VSPackage.
Окна в Visual Studio представлены в модели автоматизации объектом Window2. С помощью его членов можно управлять такими параметрами окна, как ширина, высота, видимость и т. д. Использование коллекции Window2 позволяет создавать связанное окно, состоящее из двух или более окон инструментов, скрепленных вместе. Их члены позволяют также прикреплять дополнительные окна к уже существующему фрейму или отсоединять от нее.
Примечание
Окна, которые необходимо связать, должны быть видимыми.Если какое-то из окон скрыто, генерируется исключение.Можно использовать свойство Visible для отображения окон.
Кроме того, коллекция Windows2 позволяет также создавать собственные окна инструментов. Для получения дополнительной информации см. Практическое руководство. Создание окон инструментов и управление ими.
Примечание
Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих настроек или выпуска.Эти процедуры были разработаны с обычными параметрами разработки.Чтобы изменить настройки, в меню Сервис выберите команду Импорт и экспортпараметров.Для получения дополнительной информации см. Настройка параметров разработки в Visual Studio.
Пример
В следующих примерах показано, как использовать различные члены модели автоматизации для управления окнами инструментов. Они создают связанное окно инструментов, а затем добавляются два окна инструментов Visual Studio — Обозреватель решений и окно Вывод, после чего все эти окна связываются вместе. В примерах также показано, как изменять размер и отсоединять окна инструментов. До выполнения данного кода необходимо убедиться, что свойство сборки EnvDTE "Внедрить типы взаимодействия" ссылается на значение false. Дополнительные сведения о запуске образца кода в надстройке см. в разделе Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации.
Предупреждение
Выполнение этого примера приведет к изменению текущего макета окон инструментов Visual Studio.
Public Sub OnConnection(ByVal application As Object, ByVal _
connectMode As ext_ConnectMode, ByVal addInInst As Object, _
ByRef custom As Array) Implements IDTExtensibility2.OnConnection
_applicationObject = CType(application, DTE2)
_addInInstance = CType(addInInst, AddIn)
chgWindow(_applicationObject)
End Sub
Public Sub chgWindow(ByVal dte As DTE2)
' Create variables for the various tool windows.
Dim winFrame As EnvDTE80.Window2
Dim win1 As Window = _
dte.Windows.Item(Constants.vsWindowKindSolutionExplorer)
Dim win2 As Window = dte.Windows. _
Item(Constants.vsWindowKindOutput)
Dim win3 As Window = dte.Windows. _
Item(Constants.vsWindowKindCommandWindow)
' Create a linked window frame and dock Solution
' Explorer and the Ouput window together inside it.
winFrame = CType(dte.Windows.CreateLinkedWindowFrame(win1, win2, _
vsLinkedWindowType.vsLinkedWindowTypeDocked), Window2)
MsgBox("Total number of windows in the linked window frame: " & _
winFrame.LinkedWindows.Count)
' Add another tool window, the Command window, to the frame
' with the other two.
winFrame.LinkedWindows.Add(win3)
MsgBox("Total number of windows in the linked window frame: " & _
winFrame.LinkedWindows.Count)
' Resize the entire linked window frame.
winFrame.Width = 500
winFrame.Height = 600
MsgBox("Frame height and width changed. Now changing Command _
window height.")
' Resize the height of the Command window.
winFrame.LinkedWindows.Item(3).Height = 800
MsgBox("Now undocking the Command window from the frame.")
' Undock the Command window from the frame.
winFrame.LinkedWindows.Remove(win3)
End Sub
public void OnConnection(object application, ext_ConnectMode
connectMode, object addInInst, ref Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
chgWindow(_applicationObject);
}
public void chgWindow(DTE2 dte)
{
// Create variables for the various tool windows.
EnvDTE80.Window2 winFrame;
Window win1 =
dte.Windows.Item(Constants.vsWindowKindSolutionExplorer);
Window win2 = dte.Windows.Item(Constants.vsWindowKindOutput);
Window win3 =
dte.Windows.Item(Constants.vsWindowKindCommandWindow);
// Create a linked window frame and dock Solution
// Explorer and the Ouput window together inside it.
winFrame = (Window2)dte.Windows.CreateLinkedWindowFrame(win1, win2,
vsLinkedWindowType.vsLinkedWindowTypeDocked);
System.Windows.Forms.MessageBox.Show("Total number of windows in
the linked window frame: " + winFrame.LinkedWindows.Count);
// Add another tool window, the Command window, to the frame
// with the other two.
winFrame.LinkedWindows.Add(win3);
System.Windows.Forms.MessageBox.Show(
"Total number of windows in the linked window frame: " +
winFrame.LinkedWindows.Count);
// Resize the entire linked window frame.
winFrame.Width = 500;
winFrame.Height = 600;
System.Windows.Forms.MessageBox.Show(
"Frame height and width changed." +
"Now changing Command window height.");
// Resize the height of the Command window.
winFrame.LinkedWindows.Item(3).Height = 800;
System.Windows.Forms.MessageBox.Show(
"Now undocking the Command window from the frame.");
// Undock the Command window from the frame.
winFrame.LinkedWindows.Remove(win3);
}
См. также
Задачи
Практическое руководство. Создание окон инструментов и управление ими
Практическое руководство. Создание надстройки
Пошаговое руководство. Создание мастера
Основные понятия
Диаграмма модели объектов автоматизации