Window2 介面
Window 物件代表環境中的一個視窗。
命名空間: EnvDTE80
組件: EnvDTE80 (在 EnvDTE80.dll 中)
語法
'宣告
<GuidAttribute("25731932-3283-4AE0-B7CF-F4691B8BE523")> _
Public Interface Window2 _
Inherits Window
[GuidAttribute("25731932-3283-4AE0-B7CF-F4691B8BE523")]
public interface Window2 : Window
[GuidAttribute(L"25731932-3283-4AE0-B7CF-F4691B8BE523")]
public interface class Window2 : Window
[<GuidAttribute("25731932-3283-4AE0-B7CF-F4691B8BE523")>]
type Window2 =
interface
interface Window
end
public interface Window2 extends Window
Window2 類型會公開下列成員。
屬性
名稱 | 描述 | |
---|---|---|
AutoHides | 取得或設定是否能隱藏 [工具] 視窗。 | |
Caption | 取得或設定視窗標題。 | |
Collection | 取得集合,此集合包含支援此屬性的 Window 物件。 | |
CommandBars | 取得目前視窗中所包含的 Microsoft.VisualStudio.CommandBars 集合。 | |
ContextAttributes | 取得 ContextAttributes 集合,它可以讓 Automation 用戶端將新屬性加入至目前 [動態說明] 視窗中選取的項目,並且為其他屬性提供內容說明。 | |
Document | 取得與指定的項目相關聯的 Document (如果有的話)。 | |
DocumentData | 基礎架構。 僅限 Microsoft 內部使用。 | |
DTE | 取得最上層的擴充性物件。 | |
Height | 取得或設定值,指出視窗的維度,以像素為單位。 | |
HWnd | 基礎架構。 僅限 Microsoft 內部使用。 | |
IsFloating | 取得或設定值,指出 [工具] 視窗是否浮動於其他視窗之上。 | |
Kind | 基礎架構。 僅限 Microsoft 內部使用。 | |
Left | 取得或設定水平距離,此距離是物件內部左邊緣和其容器左邊緣之間的距離。 | |
Linkable | 取得或設定值,指出此 [工具] 視窗是否可以與其他工具視窗一起停駐。 | |
LinkedWindowFrame | 取得 Window 物件,表示包含視窗的視窗框架。 | |
LinkedWindows | 取得所有連結視窗的集合,此集合包含在連結視窗框架中。 | |
Object | 取得物件,此物件可在執行階段中以名稱存取。 | |
ObjectKind | 取得 Window.Object 物件的型別,它是一個 GUID 字串,代表視窗中所包含的工具。 | |
Project | 取得與這個 Window 物件關聯的 Project 物件。 | |
ProjectItem | 取得與這個 Window 物件關聯的 ProjectItem 物件。 | |
Selection | 取得物件,表示 Window 物件上目前的選取範圍。 | |
Top | 取得或設定垂直距離,此距離為物件內部上邊緣和其容器上邊緣之間的距離。 | |
Type | 基礎架構。 僅限 Microsoft 內部使用。 | |
Visible | 取得或設定視窗的可視性。 | |
Width | 取得或設定視窗寬度 (以字元為單位)。 | |
WindowState | 取得或設定視窗狀態,例如是否為最小化、一般等等。 |
回頁首
方法
名稱 | 描述 | |
---|---|---|
Activate | 移動焦點至目前的項目。 | |
Attach | 基礎架構。 僅限 Microsoft 內部使用。 | |
Close | 關閉開啟的文件並選擇性儲存該文件,或者關閉並終結視窗。 | |
Detach | 基礎架構。 僅限 Microsoft 內部使用。 | |
SetFocus | 基礎架構。 僅限 Microsoft 內部使用。 | |
SetKind | 基礎架構。 僅限 Microsoft 內部使用。 | |
SetSelectionContainer | 當視窗為作用中時,允許在 屬性視窗 中將物件設為作用中。 | |
SetTabPicture | 將點陣圖載入至位於以標籤連結的 [工具] 視窗中的索引標籤式圖片。 |
回頁首
範例
這個範例中,會連結 [輸出視窗]、[命令視窗] 和 [方案總管]。 然後,它會操作這些連結視窗的寬度和高度,最後將它們從連結視窗框架全部卸除。
如需如何像執行增益集一般,執行這個範例的詳細資訊,請參閱 如何:編譯和執行 Automation 物件模型程式碼範例。
Imports EnvDTE
Imports EnvDTE80
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)
LinkedWindowsExample(_applicationObject)
End Sub
Sub LinkedWindowsExample(ByVal dte As DTE2)
Dim Frame As Window2
Dim wins As Windows2
wins = CType(_applicationObject.Windows, EnvDTE80.Windows2)
Dim w1 As Window2 = _
CType(_applicationObject.Windows.Item _
(Constants.vsWindowKindSolutionExplorer), EnvDTE80.Window2)
Dim w2 As Window2 = _
CType(_applicationObject.Windows.Item _
(Constants.vsWindowKindOutput), EnvDTE80.Window2)
Dim w3 As Window2 = _
CType(_applicationObject.Windows.Item _
(Constants.vsWindowKindCommandWindow), EnvDTE80.Window2)
' Create a linked window frame and dock Solution Explorer
' and the Ouput window together inside it.
Frame = CType(wins.CreateLinkedWindowFrame _
(w1, w2, vsLinkedWindowType.vsLinkedWindowTypeDocked), _
EnvDTE80.Window2)
MsgBox("Total number of windows in the linked window frame: " _
& Frame.LinkedWindows.Count)
' Add another tool window, the Command window, to the frame with
' the other two.
Frame.LinkedWindows.Add(w3)
MsgBox("Total number of windows in the linked window frame: " _
& Frame.LinkedWindows.Count)
' Resize the entire linked window frame.
Frame.Width = 500
Frame.Height = 600
MsgBox("Frame height and width changed. Now changing _
Command window height.")
' Resize the height of the Command window.
Frame.LinkedWindows.Item(3).Height = 800
MsgBox("Now undocking the Command window from the frame.")
' Undock the Command window from the frame.
Frame.LinkedWindows.Remove(w3)
MsgBox("Now undocking the rest of the windows from the frame.")
Frame.LinkedWindows.Remove(w2)
Frame.LinkedWindows.Remove(w1)
End Sub
using EnvDTE;
using EnvDTE80;
using System.Windows.Forms;
public void OnConnection(object application, ext_ConnectMode
connectMode, object addInInst, ref Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
LinkedWindowsExample(_applicationObject);
}
public void LinkedWindowsExample(DTE2 dte)
{
Window2 Frame;
Windows2 wins;
wins = (EnvDTE80.Windows2)_applicationObject.Windows;
Window2 w1 =
(EnvDTE80.Window2)_applicationObject.Windows.Item
(Constants.vsWindowKindSolutionExplorer);
Window2 w2 =
(EnvDTE80.Window2)_applicationObject.Windows.Item
(Constants.vsWindowKindOutput);
Window2 w3 =
(EnvDTE80.Window2)_applicationObject.Windows.Item
(Constants.vsWindowKindCommandWindow);
// Create a linked window frame and dock Solution Explorer
// and the Output window together inside it.
Frame = (EnvDTE80.Window2)wins.CreateLinkedWindowFrame
(w1, w2, vsLinkedWindowType.vsLinkedWindowTypeDocked);
MessageBox.Show("Total number of windows in the linked
window frame: " + Frame.LinkedWindows.Count);
// Add another tool window, the Command window, to the frame with
// the other two.
Frame.LinkedWindows.Add(w3);
MessageBox.Show("Total number of windows in the linked
window frame: " + Frame.LinkedWindows.Count);
// Resize the entire linked window frame.
Frame.Width = 500;
Frame.Height = 600;
MessageBox.Show("Frame height and width changed.
Now changing Command window height.");
// Resize the height of the Command window.
Frame.LinkedWindows.Item(3).Height = 800;
MessageBox.Show("Now undocking the Command window from
the frame.");
// Undock the Command window from the frame.
Frame.LinkedWindows.Remove(w3);
MessageBox.Show("Now undocking the rest of the windows
from the frame.");
Frame.LinkedWindows.Remove(w2);
Frame.LinkedWindows.Remove(w1);
}