Compartilhar via


Como: alterar as características da janela

Janelas em Visual Studio são representados no modelo de automação, a Window2 objeto.Por meio de seus membros, você pode manipular as características de uma janela, como, por exemplo, sua largura, altura, visibilidade e assim por diante.Usando o Window2 coleção, você pode criar uma janela vinculada, o que é composta de dois ou mais janelas de ferramenta encaixados.Seus membros também permitem janelas adicionais para encaixar ou desencaixar as janelas adicionais do quadro.

ObservaçãoObservação

Os windows a ser vinculado devem estar visíveis.Se uma das janelas estiver oculta, você obtém uma exceção.Você pode exibir o windows usando o Visible propriedade.

O Windows2 coleção também permite que você crie suas próprias janelas de ferramentas.Para obter mais informações, consulte Como: criar e controlar janelas de ferramentas.

ObservaçãoObservação

As caixas de diálogo e comandos de menu demonstradas podem ser diferentes daqueles descritos na Ajuda, dependendo das configurações ativas ou configurações de edição.Esses procedimentos foram desenvolvidos com o General Development Settings ativo.Para alterar as configurações, escolha importação e Exportarconfigurações sobre o Ferramentas menu.Para obter mais informações, consulte Configurações de Visual Studio.

Exemplo

Os exemplos a seguir demonstram como referência e usar os vários membros do modelo de automação para manipular janelas de ferramentas.Elas criam uma janela de ferramenta vinculadas e inserir dois Visual Studio ferramenta windows, ou seja, Solution Explorer e o saída janela, vinculá-los juntos.Eles também mostram como dimensionar e desencaixe janelas de ferramentas.Antes de executar esse código, certifique-se de que a propriedade "Incorporar tipos de interoperabilidade" do assembly EnvDTE referência como False. Para obter mais informações sobre como executar o código de exemplo em um Add-in, consulte Como: compilar e executar os exemplos de código de modelo de objeto de automação.

Observação de cuidadoCuidado

Executar este exemplo irá alterar sua atual Visual Studio layout de janela de ferramenta.

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);
}

Consulte também

Tarefas

Como: criar e controlar janelas de ferramentas

Como: criar um suplemento

Passo a passo: Criando um assistente

Conceitos

Gráfico de modelo de objeto de automação

Outros recursos

Criar e controlar o ambiente Windows

A criação de suplementos e assistentes

Automação e extensibilidade referência