閱讀英文

共用方式為


逐步解說: 公開至 [屬性] 視窗的屬性

這個逐步解說中的物件的公用屬性公開 (expose) 屬性視窗。 您對這些屬性所做的變更會反映在屬性視窗。

必要條件

若要完成這個逐步解說中,您必須安裝Visual Studio 2010 SDK。

注意事項注意事項

如需有關 Visual Studio 的 SDK 的詳細資訊,請參閱擴充 Visual Studio 的概觀。若要了解如何下載 Visual Studio 的 SDK,請參閱Visual Studio 擴充性開發人員中心 MSDN 網站上。

Visual Studio 的封裝專案範本的位置

Visual Studio 的封裝的專案範本,請參閱以下三個不同的位置,在新的專案對話方塊:

  1. 在 [Visual Basic 擴充性。 專案的預設語言是 Visual Basic。

  2. 在 [C# 擴充性。 專案的預設語言是 C#。

  3. 在 [其他專案的型別擴充性。 專案的預設語言是 c + +。

公開屬性] 視窗的屬性

本章節中,方法,您可以建立基本的工具視窗套件,然後顯示公用屬性關聯的視窗窗格內的物件屬性視窗。

若要公開 (expose) 至 [屬性] 視窗的內容

  1. 建立Visual Studio套件專案,名為 MyObjectProps。

    如需有關如何建立受管理的 VSPackage 的詳細資訊,請參閱逐步解說: 使用 Visual Studio 的封裝範本建立功能表命令

  2. 選取程式語言 頁面上,選取 視覺 C#。 您可以使用 Visual Basic 來建立封裝,但這個逐步解說中使用視覺化的 C#。

  3. 選取 VSPackage 選項 頁面上,選取 的工具視窗

  4. 工具視窗選項 頁面上,變更 視窗名稱 到 我的物件內容,然後按一下 [ 完成

    這個樣板會建立受管理的專案中,MyObjectProps。

  5. 開啟檔案,也就是 MyToolWindow.cs,並新增下列的欄位,以MyToolWindow類別。

    private ITrackSelection trackSel;
    private SelectionContainer selContainer;
    
  6. MyToolWindow 類別中加入下列程式碼。

    private ITrackSelection TrackSelection
    {
        get
        {
            if (trackSel == null)
                trackSel =
                   GetService(typeof(STrackSelection)) as ITrackSelection;
            return trackSel;
        }
    }
    
    public void UpdateSelection()
    {
        ITrackSelection track = TrackSelection;
        if (track != null)
            track.OnSelectChange((ISelectionContainer)selContainer);
    }
    
    public void SelectList(ArrayList list)
    {
        selContainer = new SelectionContainer(true, false);
        selContainer.SelectableObjects = list;
        selContainer.SelectedObjects = list;
        UpdateSelection();
    }
    
    public override void OnToolWindowCreated()
    {
        ArrayList listObjects = new ArrayList();
        listObjects.Add(this);
        SelectList(listObjects);
    }
    

    TrackSelection屬性用法GetService以取得STrackSelection服務,提供ITrackSelection介面。 OnToolWindowCreated事件處理常式與SelectList方法一起建立一份選取物件,其中包含只有工具視窗窗格物件本身。 UpdateSelection方法會告知屬性視窗,以顯示工具] 視窗窗格中的公用屬性。

  7. 建置並啟動偵錯模式中的專案,按下 f5 鍵。 這會啟動Visual Studio費用。

    注意事項注意事項

    兩個版本的Visual Studio現在已經開啟。

  8. 如果屬性視窗屬於不可見,請按 f4 鍵開啟。

  9. 在Visual Studio費用] 檢視 功能表上指向其他視窗,然後按一下 我的物件內容

    視窗隨即開啟,而且視窗窗格的公用屬性出現在屬性視窗。

  10. 按一下 [在方案總管] 中。 在 [屬性屬性視窗消失。 按一下 [ 我的物件內容視窗。 內容會重新出現。

  11. 變更標題 屬性在 屬性 ] 視窗來 東西其他

    我的物件內容視窗的標題會隨之改變。

公開工具視窗的屬性

本章節中,您可以新增一個工具視窗,並顯示其屬性。 您對屬性所做的變更會反映在屬性視窗。

若要公開 (expose) 工具視窗屬性

  1. 關閉Visual Studio費用。

  2. 開啟 MyToolWindow.cs,並新增public boolean屬性IsChecked MyToolWindow 類別。

    [Category("My Properties")]
    [Description("MyControl properties")]
    public bool IsChecked
    {
        get {
            if (base.Content == null)  return false;
            return (bool)((MyControl) base.Content).checkBox1.IsChecked; 
        }
        set {
            ((MyControl) base.Content).checkBox1.IsChecked = value;
        }
    }
    

    這個屬性讀取,並直接從您在接下來的步驟中建立 WPF 核取方塊將其狀態。

  3. MyToolWindow建構函式,加入this關鍵字MyControl建構函式:

    base.Content = new MyControl(this);
    
  4. 開啟檔案,也就是 MyControl.xaml.cs,並使用下列程式碼來取代建構函式。

    private MyToolWindow pane;
    public MyControl(MyToolWindow pane)
    {
        InitializeComponent();
        this.pane = pane;
        checkBox1.IsChecked = false;
    }
    

    這可讓MyControl存取MyToolWindow窗格。

  5. 變更為 [設計] 檢視中。

  6. 刪除 [button] 控制項。 新增一個核取方塊,從工具箱到上方,左上角。

  7. 連按兩下核取方塊。

    這會建立checkBox1_Checked事件處理常式,在 [程式碼編輯器中開啟。

  8. 在 [屬性] 視窗中,連按兩下 checkBox1未核取事件處理常式。

    這會建立checkBox1_Unchecked事件處理常式,在 [程式碼編輯器中開啟。

  9. 使用下列程式碼中取代] 核取方塊的事件處理常式。

    private void checkBox1_Checked(object sender, RoutedEventArgs e)
    {
        pane.IsChecked = true;
        pane.UpdateSelection();
    }
    private void checkBox1_Unchecked(object sender, RoutedEventArgs e)
    {
        pane.IsChecked = false;
        pane.UpdateSelection();
    }
    
  10. 建置並啟動偵錯模式中的專案,按下 f5 鍵。 這會啟動Visual Studio費用。

  11. 在Visual Studio費用] 檢視 功能表上指向其他視窗,然後按一下 我的物件內容

    [視窗] 窗格的公用屬性會出現在屬性視窗。 IsChecked 屬性就會出現在 [類別] 我內容

  12. 按一下 [ IsChecked 屬性。

    描述 MyControl 屬性 的下方會顯示 屬性視窗。

  13. 在 [我的物件屬性] 視窗中,選取核取方塊。 IsChecked 變成 ,則為 True。 清除核取方塊。 IsChecked 變成 ,則為 False。 正值使 IsChecked屬性視窗。 在 [我的物件屬性] 視窗變更,以符合新的值] 核取方塊。

    注意事項注意事項

    如果您必須處理屬性或物件顯示在屬性視窗中,呼叫OnSelectChange與null選擇容器第一個。之後處置物件的屬性,您可以變更為 [已更新的選取項目容器SelectableObjectsSelectedObjects列出。

變更選取項目清單

本章節中,加入基本的屬性類別的選取項目清單,並使用工具視窗介面來選擇要顯示哪一個選取項目清單。

若要變更選取項目清單

  1. 關閉Visual Studio費用。

  2. 開啟 MyToolWindow.cs 或 MyToolWindow.vb,並加入公用的類別, Simple,而只會在命名空間陳述式之後的檔案,開頭,並開啟 curlique 括號。

    public class Simple
    {
        private string someText = "";
    
        [Category("My Properties")]
        [Description("Simple Properties")]
        [DisplayName("MyText")]
        public string SomeText
        {
            get { return someText; }
            set { someText = value; }
        }
    
        [Category("My Properties")]
        [Description("Read-only property")]
        public string ReadOnly
        {
            get { return "Hello"; }
        }
    }
    

    型別的物件Simple有公用字串屬性, SomeText,以及ReadOnly。

  3. 加入下列程式碼的結尾MyToolWindow類別,只在 IsChecked 屬性之後。

    public void SelectSimpleList()
    {
        ArrayList listObjects = new ArrayList();
        listObjects.Add(SimpleObject);
        SelectList(listObjects);
    }
    
    public void SelectThisList()
    {
        ArrayList listObjects = new ArrayList();
        listObjects.Add(this);
        SelectList(listObjects);
    }
    

    這會建立 [單一] 屬性中, SimpleObject,和兩個方法,以切換屬性視窗選取項目在窗格之間以及Simple物件。

  4. 在 [程式碼] 檢視中開啟 MyControl.cs 或 MyControl.vb。 這行程式碼中取代] 核取方塊的處理常式:

    private void checkBox1_Checked(object sender, RoutedEventArgs e)
    {
        pane.IsChecked = true;
        pane.SelectSimpleList();
        pane.UpdateSelection();
    }
    private void checkBox1_Unchecked(object sender, RoutedEventArgs e)
    {
        pane.IsChecked = false;
        pane.SelectThisList();
        pane.UpdateSelection();
    }
    
  5. 建置並啟動偵錯模式中的專案,按下 f5 鍵。

    這會啟動Visual Studio費用。

  6. 在Visual Studio費用] 檢視 功能表上指向其他視窗,然後按一下 我的物件內容

    視窗隨即開啟,而且視窗窗格的公用屬性出現在屬性視窗。

  7. 在 [我的物件屬性] 視窗中,選取核取方塊。 屬性 ] 視窗會顯示Simple物件的屬性, SomeTextReadOnly。 清除核取方塊。 [視窗] 窗格的公用屬性會出現在屬性視窗。

    注意事項注意事項

    顯示名稱某些文字我文字

最佳作法

在這個逐步解說中, ISelectionContainer的實作,以便能選取的物件集合,並選取的物件集合是相同的集合。 選取的物件會出現在屬性瀏覽器] 清單中的色彩。 取得更完整的 ISelectionContainer 實作中,請參閱 Reference.ToolWindow 範例。

Visual Studio 的工具視窗會持續 Visual Studio 的工作階段之間。 如需有關如何保存的工具視窗狀態的詳細資訊,請參閱ProvideProfileAttribute

請參閱

概念

屬性瀏覽器的支援

其他資源

VSPackage 狀態