Практическое руководство. Изменение параметров окон
Окна в 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);
}
См. также
Задачи
Практическое руководство. Создание окон инструментов и управление ими
Практическое руководство. Создание надстройки
Пошаговое руководство. Создание мастера
Основные понятия
Диаграмма модели объектов автоматизации