Freigeben über


Gewusst wie: Ändern des Erscheinungsbilds eines Fensters

Fenster in Visual Studio werden im Automatisierungsmodell durch das Window2-Objekt angezeigt. Unter Verwendung der zugehörigen Member können Sie das Erscheinungsbild eines Fensters verändern, z. B. Höhe, Breite, Sichtbarkeit u. v. a. m. Mithilfe der Window2-Auflistung können Sie ein verknüpftes Fenster erstellen, das aus mindestens zwei zusammen angedockten Fenstern besteht. Die jeweiligen Member dienen dazu, zusätzliche Fenster an den Rahmen anzudocken bzw. davon abzukoppeln.

Tipp

Die Fenster, die verknüpft werden sollen, müssen sichtbar sein. Wenn eines der beiden Fenster ausgeblendet ist, wird eine Ausnahme ausgelöst. Sie können Fenster mithilfe der Visible-Eigenschaft anzeigen.

Mit der Windows2-Auflistung können Sie zudem eigene Toolfenster erstellen. Weitere Informationen finden Sie unter Gewusst wie: Erstellen und Steuern von Toolfenstern.

Tipp

Je nach den aktiven Einstellungen oder der Version unterscheiden sich die Dialogfelder und Menübefehle auf Ihrem Bildschirm möglicherweise von den in der Hilfe beschriebenen. Bei der Entwicklung dieser Verfahren war die Option Allgemeine Entwicklungseinstellungen aktiviert. Wählen Sie im Menü Extras die Option Einstellungen importieren und exportieren aus, um die Einstellungen zu ändern. Weitere Informationen finden Sie unter Arbeiten mit Einstellungen.

Beispiel

In den folgenden Beispielen wird veranschaulicht, wie die verschiedenen Member des Automatisierungsmodells zur Veränderung von Toolfenstern verwendet werden und wie auf sie verwiesen wird. Zunächst wird ein verknüpftes Fenster erstellt. Anschließend werden zwei Visual Studio-Toolfenster eingefügt, und zwar der Projektmappen-Explorer und das Fenster Ausgabe, die miteinander verknüpft werden. Außerdem wird gezeigt, wie die Größe von Toolfenstern festgelegt wird und wie Fenster abgekoppelt werden können. Bevor Sie diesen Code ausführen, stellen Sie sicher, dass die Eigenschaft "Interop-Typen einbetten" des EnvDTE-Assemblyverweises auf "False" festgelegt ist. Weitere Informationen zum Ausführen des Beispielcodes in einem Add-In finden Sie unter Gewusst wie: Kompilieren und Ausführen der Codebeispiele für das Automatisierungsobjektmodell.

Warnung

Durch die Ausführung des Beispiels wird das aktuelle Layout des Visual Studio-Toolfensters geändert.

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

Siehe auch

Aufgaben

Gewusst wie: Erstellen und Steuern von Toolfenstern

Gewusst wie: Erstellen von Add-Ins

Exemplarische Vorgehensweise: Erstellen eines Assistenten

Konzepte

Diagramm "Automationsobjektmodell"

Weitere Ressourcen

Erstellen und Steuern von Umgebungsfenstern

Erstellen von Add-Ins und Assistenten

Referenz zur Automatisierung und Erweiterbarkeit