ModelingPackage 類別
在衍生類別中覆寫時,表示網域特定語言設計工具的 VSPackage。
此應用程式開發介面不符合 CLS 標準。
繼承階層架構
System.Object
Microsoft.VisualStudio.Shell.Package
Microsoft.VisualStudio.Modeling.Shell.ModelingPackage
命名空間: Microsoft.VisualStudio.Modeling.Shell
組件: Microsoft.VisualStudio.Modeling.Sdk.Shell.12.0 (在 Microsoft.VisualStudio.Modeling.Sdk.Shell.12.0.dll 中)
語法
'宣告
<CLSCompliantAttribute(False)> _
<ComVisibleAttribute(True)> _
Public MustInherit Class ModelingPackage _
Inherits Package _
Implements IVsToolWindowFactory
[CLSCompliantAttribute(false)]
[ComVisibleAttribute(true)]
public abstract class ModelingPackage : Package,
IVsToolWindowFactory
ModelingPackage 類型會公開下列成員。
建構函式
名稱 | 描述 | |
---|---|---|
ModelingPackage | 初始化 ModelingPackage 類別的新執行個體。 |
回頁首
屬性
名稱 | 描述 | |
---|---|---|
ApplicationRegistryRoot | (繼承自 Package)。 | |
Locator | 取得模型項目定位程式,它會找出封裝中的模型項目。 | |
SetupMode | 取得模型封裝,並確認是否正在設定 Domain-Specific Language Designer。 | |
UserDataPath | (繼承自 Package)。 | |
UserLocalDataPath | (繼承自 Package)。 | |
UserRegistryRoot | (繼承自 Package)。 | |
Zombied | (繼承自 Package)。 |
回頁首
方法
回頁首
事件
名稱 | 描述 | |
---|---|---|
ToolboxInitialized | (繼承自 Package)。 | |
ToolboxUpgraded | (繼承自 Package)。 |
回頁首
明確介面實作
名稱 | 描述 | |
---|---|---|
IServiceContainer.AddService(Type, Object) | (繼承自 Package)。 | |
IServiceContainer.AddService(Type, ServiceCreatorCallback) | (繼承自 Package)。 | |
IServiceContainer.AddService(Type, Object, Boolean) | (繼承自 Package)。 | |
IServiceContainer.AddService(Type, ServiceCreatorCallback, Boolean) | (繼承自 Package)。 | |
IVsPackage.Close | (繼承自 Package)。 | |
IVsToolWindowFactory.CreateToolWindow | (繼承自 Package)。 | |
IOleCommandTarget.Exec | (繼承自 Package)。 | |
IVsUserSettings.ExportSettings | (繼承自 Package)。 | |
IVsPackage.GetAutomationObject | (繼承自 Package)。 | |
IVsToolboxItemProvider.GetItemContent | (繼承自 Package)。 | |
IVsPackage.GetPropertyPage | (繼承自 Package)。 | |
IServiceProvider.GetService | (繼承自 Package)。 | |
IVsUserSettings.ImportSettings | (繼承自 Package)。 | |
IVsPersistSolutionOpts.LoadUserOptions | (繼承自 Package)。 | |
IVsUserSettingsMigration.MigrateSettings | (繼承自 Package)。 | |
IVsUserSettingsQuery.NeedExport | (繼承自 Package)。 | |
IVsPackage.QueryClose | (繼承自 Package)。 | |
IServiceProvider.QueryService | (繼承自 Package)。 | |
IOleCommandTarget.QueryStatus | (繼承自 Package)。 | |
IVsPersistSolutionOpts.ReadUserOptions | (繼承自 Package)。 | |
IServiceContainer.RemoveService(Type) | (繼承自 Package)。 | |
IServiceContainer.RemoveService(Type, Boolean) | (繼承自 Package)。 | |
IVsPackage.ResetDefaults | (繼承自 Package)。 | |
IVsPersistSolutionOpts.SaveUserOptions | (繼承自 Package)。 | |
IVsPackage.SetSite | (繼承自 Package)。 | |
IVsPersistSolutionOpts.WriteUserOptions | (繼承自 Package)。 |
回頁首
備註
您可以使用這個類別載入網域指定的語言套件,向 Visual Studio的編輯器 Factory。 Visual Studio 呼叫編輯器 Factory,建立網域指定的語言所產生的設計工具。 除了註冊編輯器 Factory 之外,您也可以使用這個類別會註冊工具視窗。
這個類別包含功能表支援在組件層級。 支援工具視窗需要的封裝實作 IVsToolWindowFactory。
範例
下列範例會將呼叫產生設計工具的 [自訂工具視窗 ] 的工具視窗。 當您開啟在產生的設計工具中的專案,這個視窗的選項在 [方案總管] 旁邊。 當您按一下視窗的選項時,將 [這是自訂工具視窗] 的標籤在工具視窗中的發生。
這個程式碼會註冊工具視窗:
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
{
[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
{
//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) 成員都是安全執行緒。不保證任何執行個體成員是安全執行緒。