共用方式為


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)。

回頁首

方法

  名稱 描述
受保護的方法 AddOptionKey (繼承自 Package)。
公用方法靜態成員 AddOrReplaceToolboxItem 已過時。如果不存在,則加入工具箱項目。如果項目已經存在,將會取代現有的工具箱項目
受保護的方法 AddToolboxItems 將傳遞的 ModelingToolboxItemBase 項目集合加入至 Visual Studio 工具箱中。
受保護的方法 AddToolWindow 將工具視窗加入至網域指定的語言所產生的設計工具。
公用方法 CreateInstance (繼承自 Package)。
受保護的方法 CreateLocator 建立封裝的模型項目定位程式。
公用方法 CreateTool (繼承自 Package)。
受保護的方法 CreateToolboxItems 建立工具箱中的項目。
受保護的方法 CreateToolWindow(Type, Int32) (繼承自 Package)。
公用方法 CreateToolWindow(Guid%, UInt32) 建立工具視窗。
受保護的方法 Dispose (繼承自 Package)。
公用方法 Equals 判斷指定的物件是否等於目前物件。 (繼承自 Object)。
受保護的方法 Finalize 允許物件在記憶體回收進行回收之前,嘗試釋放資源並執行其他清除作業。 (繼承自 Object)。
公用方法 FindToolWindow (繼承自 Package)。
公用方法 FindWindowPane (繼承自 Package)。
受保護的方法 GetAutomationObject (繼承自 Package)。
受保護的方法 GetDialogPage (繼承自 Package)。
公用方法 GetHashCode 做為預設雜湊函式。 (繼承自 Object)。
公用方法 GetOutputPane (繼承自 Package)。
公用方法 GetProviderLocale (繼承自 Package)。
受保護的方法 GetService (繼承自 Package)。
受保護的方法 GetToolboxItemData (繼承自 Package)。
公用方法 GetToolWindow(Type) 取得工具視窗。
公用方法 GetToolWindow(Type, Boolean) 取得工具視窗。
公用方法 GetType 取得目前執行個體的 Type。 (繼承自 Object)。
受保護的方法 Initialize 初始化 ModelingPackage 類別。 (覆寫 Package.Initialize()。)
受保護的方法 MemberwiseClone 建立目前 Object 的淺層複本 (Shallow Copy)。 (繼承自 Object)。
受保護的方法 OnLoadOptions (繼承自 Package)。
受保護的方法 OnSaveOptions (繼承自 Package)。
受保護的方法 OnToolboxInitialized ToolboxInitialized 事件的事件處理常式。將會重新註冊動態/自訂工具箱項目。
受保護的方法 OnToolboxUpgraded ToolboxUpgraded 事件的事件處理常式。將會重新註冊動態/自訂工具箱項目。
受保護的方法 ParseToolboxResource(TextReader, ResourceManager) (繼承自 Package)。
受保護的方法 ParseToolboxResource(TextReader, Guid) (繼承自 Package)。
受保護的方法 QueryClose (繼承自 Package)。
受保護的方法 RegisterEditorFactory (繼承自 Package)。
受保護的方法 RegisterProjectFactory (繼承自 Package)。
受保護的方法 SetupDynamicToolbox 重新整理工具箱中的項目。
公用方法 ShowOptionPage (繼承自 Package)。
公用方法 ToString 傳回表示目前物件的字串。 (繼承自 Object)。

回頁首

事件

  名稱 描述
受保護的事件 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) 成員都是安全執行緒。不保證任何執行個體成員是安全執行緒。

請參閱

參考

Microsoft.VisualStudio.Modeling.Shell 命名空間

IVsToolWindowFactory

IVsPackage