ToolWindow 類別
由衍生類別覆寫時,代表工具視窗,此工具視窗位在針對網域特定語言產生的設計工具中。
此應用程式開發介面不符合 CLS 標準。
繼承階層架構
System.Object
Microsoft.VisualStudio.Shell.WindowPane
Microsoft.VisualStudio.Modeling.Shell.ModelingWindowPane
Microsoft.VisualStudio.Modeling.Shell.ToolWindow
Microsoft.VisualStudio.Modeling.Shell.ModelExplorerToolWindow
命名空間: Microsoft.VisualStudio.Modeling.Shell
組件: Microsoft.VisualStudio.Modeling.Sdk.Shell.12.0 (在 Microsoft.VisualStudio.Modeling.Sdk.Shell.12.0.dll 中)
語法
'宣告
<CLSCompliantAttribute(False)> _
Public MustInherit Class ToolWindow _
Inherits ModelingWindowPane
[CLSCompliantAttribute(false)]
public abstract class ToolWindow : ModelingWindowPane
ToolWindow 類型會公開下列成員。
建構函式
名稱 | 描述 | |
---|---|---|
ToolWindow | 初始化 ToolWindow 類別的新執行個體。 |
回頁首
屬性
名稱 | 描述 | |
---|---|---|
ActiveInPlaceEditWindow | 取得和設定就地編輯的使用中視窗。 (繼承自 ModelingWindowPane)。 | |
BitmapIndex | 在衍生類別中覆寫時,取得工具視窗名稱旁所出現的點陣圖的索引。 | |
BitmapResource | 在衍生類別中覆寫時,取得工具視窗名稱旁所出現的點陣圖的資源 ID。 | |
Content | (繼承自 WindowPane)。 | |
DocData | 取得在記憶體中的文件。 | |
EnableUndo | 取得工具視窗,並啟用 [復原] 命令。 | |
Frame | 取得對應至這個視窗的 IVsWindowFrame。 (繼承自 ModelingWindowPane)。 | |
HasSelectableObjects | 取得工具視窗,而且如果未載入文件則停用 [選取物件] 命令。 (覆寫 ModelingWindowPane.HasSelectableObjects。) | |
HasToolBar | 取得工具視窗,並確認它是否應該有工具列。 | |
HelpService | 取得說明服務。 (繼承自 ModelingWindowPane)。 | |
InitializationMode | (繼承自 WindowPane)。 | |
MenuService | 取得功能表命令服務。 (繼承自 ModelingWindowPane)。 | |
PrimarySelection | 取得在視窗窗格中選取的主要項目。 (繼承自 ModelingWindowPane)。 | |
SelectedElements | 取得在視窗窗格中選取的項目。 (繼承自 ModelingWindowPane)。 | |
SelectionCount | 取得在視窗窗格中選取的項目數目。 (繼承自 ModelingWindowPane)。 | |
SelectionHelpService | 取得選取範圍說明服務。 (繼承自 ModelingWindowPane)。 | |
ServiceProvider | 取得這個視窗窗格的本機服務提供者。 (繼承自 ModelingWindowPane)。 | |
ToolBarHost | 取得 IVsToolWindowToolbarHost 介面,用來決定工具視窗中工具列的顯示方式。 | |
ToolWindowFont | 取得要用於工具視窗的字型。 | |
Window | (繼承自 WindowPane)。 | |
WindowTitle | 取得工具視窗的標題。 |
回頁首
方法
回頁首
事件
名稱 | 描述 | |
---|---|---|
SelectionChanged | 在視窗窗格中的選取範圍已變更之後引發。 (繼承自 ModelingWindowPane)。 | |
SelectionChanging | 在視窗窗格中的選取範圍變更之前引發。 (繼承自 ModelingWindowPane)。 |
回頁首
明確介面實作
名稱 | 描述 | |
---|---|---|
IVsWindowPane.ClosePane | 已過時。 (繼承自 WindowPane)。 | |
IVsUIElementPane.CloseUIElementPane | (繼承自 WindowPane)。 | |
IVsWindowPane.CreatePaneWindow | 已過時。 (繼承自 WindowPane)。 | |
IVsUIElementPane.CreateUIElementPane | (繼承自 WindowPane)。 | |
IOleCommandTarget.Exec | (繼承自 WindowPane)。 | |
IVsWindowPane.GetDefaultSize | 已過時。 (繼承自 WindowPane)。 | |
IVsUIElementPane.GetDefaultUIElementSize | (繼承自 WindowPane)。 | |
IServiceProvider.GetService | (繼承自 WindowPane)。 | |
IVsUIElementPane.LoadUIElementState | (繼承自 WindowPane)。 | |
IVsWindowPane.LoadViewState | 已過時。 (繼承自 WindowPane)。 | |
IOleCommandTarget.QueryStatus | (繼承自 WindowPane)。 | |
IVsUIElementPane.SaveUIElementState | (繼承自 WindowPane)。 | |
IVsWindowPane.SaveViewState | 已過時。 (繼承自 WindowPane)。 | |
IVsWindowPane.SetSite | 已過時。 (繼承自 WindowPane)。 | |
IVsUIElementPane.SetUIElementSite | (繼承自 WindowPane)。 | |
IVsWindowPane.TranslateAccelerator | 已過時。 (繼承自 WindowPane)。 | |
IVsUIElementPane.TranslateUIElementAccelerator | (繼承自 WindowPane)。 |
回頁首
備註
將工具視窗至產生的設計工具之前,您必須登錄視窗。 如需詳細資訊,請參閱ModelingPackage。
範例
下列範例會將工具視窗名為 [自訂工具視窗 ] 至名為 RegisterTools 的網域特定語言專案。 當您開啟在產生的設計工具中的專案,這個視窗的選項在 [方案總管] 旁邊。 當您按一下這個選項時,將 [這是自訂工具視窗] 的標籤在工具視窗中出現。
這個程式碼會註冊工具視窗:
using VSShellInterop = Microsoft.VisualStudio.Shell.Interop;
using VSShell = Microsoft.VisualStudio.Shell;
using DslShell = Microsoft.VisualStudio.Modeling.Shell;
using DslDesign = Microsoft.VisualStudio.Modeling.Design;
using VSTextTemplatingHost = Microsoft.VisualStudio.TextTemplating.VSHost;
namespace MS.RegisterTools.DslPackage
{
[VSShell::ProvideToolWindowVisibility(typeof(CustomToolWindow),
Constants.RegisterToolsEditorFactoryId)]
[VSShell::ProvideToolWindow(typeof(CustomToolWindow),
MultiInstances = false,
Style = VSShell::VsDockStyle.Tabbed,
Orientation = VSShell::ToolWindowOrientation.Right,
Window = "{3AE79031-E1BC-11D0-8F78-00A0C9110057}")]
internal partial class RegisterToolsPackage
{
//Initializes the base class for the package
protected override void Initialize()
{
base.Initialize();
//Registers the custom tool window
this.AddToolWindow(typeof(CustomToolWindow));
}
}
}
這個程式碼定義工具視窗:
using System;
using System.Windows.Forms;
using VSShellInterop = Microsoft.VisualStudio.Shell.Interop;
using VSShell = Microsoft.VisualStudio.Shell;
using DslShell = Microsoft.VisualStudio.Modeling.Shell;
using DslDesign = Microsoft.VisualStudio.Modeling.Design;
using VSTextTemplatingHost = Microsoft.VisualStudio.TextTemplating.VSHost;
namespace MS.RegisterTools.DslPackage
{
//Creates a tool window and gives it a title, icon, and label
internal class CustomToolWindow : DslShell.ToolWindow
{
//defines a label
private Label myLabel;
//creates the tool window
public CustomToolWindow(IServiceProvider serviceProvider) : base(serviceProvider)
{
}
//gets the icon for the tool window
protected override int BitmapResource
{
get { return 104; }
}
//gets the index for the icon
protected override int BitmapIndex
{
get { return 0; }
}
//gets the name of the tool window
public override string WindowTitle
{
get { return "Custom Window"; }
}
//sets up a label
protected override void OnToolWindowCreate()
{
this.myLabel = new Label();
this.myLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.myLabel.Text = "This is the custom tool window";
}
//puts a label on the tool window
public override System.Windows.Forms.IWin32Window Window
{
get { return this.myLabel; }
}
}
}
執行緒安全
這個類型的任何 Public static (在 Visual Basic 中為 Shared) 成員都是安全執行緒。不保證任何執行個體成員是安全執行緒。