Aracılığıyla paylaş


Özellikleri Özellikler penceresine sunma

Bu izlenecek yol, bir nesnenin genel özelliklerini Özellikler penceresinde kullanıma sunar. Bu özelliklerde yaptığınız değişiklikler Özellikler penceresine yansıtılır.

Özellikleri Özellikler penceresine sunma

Bu bölümde, özel bir araç penceresi oluşturacak ve özellikler penceresinde ilişkili pencere bölmesi nesnesinin genel özelliklerini görüntüleyeceksiniz.

Özellikleri Özellikler penceresine göstermek için

  1. Her Visual Studio uzantısı, uzantı varlıklarını içeren bir VSIX dağıtım projesiyle başlar. adlı MyObjectPropertiesExtensionbir Visual Studio VSIX projesi oluşturun. VSIX proje şablonunu yeni proje iletişim kutusunda "vsix" araması yaparak bulabilirsiniz.

  2. MyToolWindow adlı özel bir araç penceresi şablonu ekleyerek bir araç penceresi ekleyin. Çözüm Gezginibölümünde, proje düğümüne sağ tıklayın ve Ekle>Yeni Öğeseçeneğini seçin. Yeni Öğe Ekle iletişim kutusundaVisual C# Öğeleri>Genişletilebilirliği'ne gidin ve Özel Araç Penceresi'ni seçin. İletişim kutusunun altındaki Ad alanında, dosya adını MyToolWindow.cs olarak değiştirin. Özel araç penceresi oluşturma hakkında daha fazla bilgi için bkz. Araç penceresiyle uzantı oluşturma.

  3. MyToolWindow.cs açın ve aşağıdaki using deyimini ekleyin:

    using System.Collections;
    using System.ComponentModel;
    using Microsoft.VisualStudio.Shell.Interop;
    
  4. Şimdi sınıfına aşağıdaki alanları MyToolWindow ekleyin.

    private ITrackSelection trackSel;
    private SelectionContainer selContainer;
    
    
  5. aşağıdaki kodu MyToolWindow sınıfına ekleyin.

    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 özelliği, bir STrackSelection hizmeti almak ve bir ITrackSelection arabirim sağlamak için GetService kullanır. Olay OnToolWindowCreated işleyicisi ve SelectList yöntemi birlikte yalnızca araç penceresi bölmesi nesnesinin kendisini içeren seçili nesnelerin listesini oluşturur. yöntemi, UpdateSelectionÖzellikler penceresine araç penceresi bölmesinin genel özelliklerini görüntülemesini söyler.

  6. Projeyi derleyin ve hata ayıklamaya başlayın. Visual Studio'nun deneysel örneği görünmelidir.

  7. Özellikler penceresi görünmüyorsa F4 tuşuna basarak açın.

  8. MyToolWindow penceresini açın. Görüntüle>Diğer Pencereler'de bulabilirsiniz.

    Pencere açılır ve pencere bölmesinin genel özellikleri Özellikler penceresinde görüntülenir.

  9. Özellikler penceresindeki Caption özelliğini Nesne Özelliklerim olarak değiştirin.

    MyToolWindow pencere başlığı buna göre değişir.

Araç penceresi özelliklerini görünür kılma

Bu bölümde bir araç penceresi ekler ve özelliklerini görünür hale getirirsiniz. Özelliklerde yaptığınız değişiklikler Özellikler penceresine yansıtılır.

Araç penceresi özelliklerini gösterme

  1. MyToolWindow.cs açın ve sınıfına IsChecked MyToolWindow genel boole özelliğini ekleyin.

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

    Bu özellik, durumunu daha sonra oluşturacağınız WPF onay kutusundan alır.

  2. MyToolWindowControl.xaml.cs açın ve MyToolWindowControl oluşturucuyu aşağıdaki kodla değiştirin.

    private MyToolWindow pane;
    public MyToolWindowControl(MyToolWindow pane)
    {
        InitializeComponent();
        this.pane = pane;
        checkBox.IsChecked = false;
    }
    

    Bu, MyToolWindowControl bölmesine erişim sağlarMyToolWindow.

  3. MyToolWindow.cs'da oluşturucuyu MyToolWindow aşağıdaki gibi değiştirin:

    base.Content = new MyToolWindowControl(this);
    
  4. MyToolWindowControl öğesinin tasarım görünümüne geçin.

  5. Düğmeyi silin ve Araç Kutusu'ndan sol üst köşeye bir onay kutusu ekleyin.

  6. Seçili ve Seçili Değil olaylarını ekleyin. Tasarım görünümünde onay kutusunu seçin. Özellikler penceresinde, olay işleyicileri düğmesine (Özellikler penceresinin sağ üst kısmında) tıklayın. İşaretli'yi bulun ve metin kutusuna checkbox_Checked yazın, ardından İşaretsiz'i bulun ve metin kutusuna checkbox_Unchecked yazın.

  7. Onay kutusu olay işleyicilerini ekleyin:

    private void checkbox_Checked(object sender, RoutedEventArgs e)
    {
        pane.IsChecked = true;
        pane.UpdateSelection();
    }
    private void checkbox_Unchecked(object sender, RoutedEventArgs e)
    {
        pane.IsChecked = false;
        pane.UpdateSelection();
    }
    
  8. Projeyi derleyin ve hata ayıklamaya başlayın.

  9. Deneysel örnekte MyToolWindow penceresini açın.

    Özellikler penceresinde pencerenin özelliklerini arayın. IsChecked özelliği pencerenin en altında, Özelliklerim kategorisinin altında görüntülenir.

  10. MyToolWindow penceresindeki onay kutusunu işaretleyin. Özellikler penceresinde IsCheckeddeğeri True olarak değişir. MyToolWindow penceresindeki onay kutusunu temizleyin. Özellikler penceresinde IsCheckedFalse olarak değişir. Özellikler penceresinde IsChecked değerini değiştirin. MyToolWindow penceresindeki onay kutusu yeni değerle eşleşecek şekilde değişir.

    Uyarı

    Özellikler penceresinde görüntülenen bir nesneyi atmanız gerekiyorsa, önce bir null seçim kapsayıcısı ile OnSelectChange çağırın. Özelliği veya nesneyi elden çıkardıktan sonra, SelectableObjects ve SelectedObjects listeleri güncellenmiş olan bir seçim alanına geçebilirsiniz.

Seçim listelerini değiştirme

Bu bölümde, temel özellik sınıfı için bir seçim listesi ekleyecek ve hangi seçim listesinin görüntüleneceğini seçmek için araç penceresi arabirimini kullanacaksınız.

Seçim listelerini değiştirmek için

  1. MyToolWindow.cs açın ve adlı Simplebir genel sınıf ekleyin.

    public class Simple
    {
        private string someText = "";
    
        [Category("My Properties")]
        [Description("Simple Properties")]
        [DisplayName("My Text")]
        public string SomeText
        {
            get { return someText; }
            set { someText = value; }
        }
    
        [Category("My Properties")]
        [Description("Read-only property")]
        public bool ReadOnly
        {
            get { return false; }
        }
    }
    
  2. Sınıfa bir SimpleObject özelliği ekleyin ve Özellikler penceresi seçimini pencere bölmesi ile Simple nesnesi arasında değiştirecek iki yöntem ekleyin.

    private Simple simpleObject = null;
    public Simple SimpleObject
    {
        get
        {
            if (simpleObject == null) simpleObject = new Simple();
            return simpleObject;
        }
    }
    
    public void SelectSimpleList()
    {
        ArrayList listObjects = new ArrayList();
        listObjects.Add(SimpleObject);
        SelectList(listObjects);
    }
    
    public void SelectThisList()
    {
        ArrayList listObjects = new ArrayList();
        listObjects.Add(this);
        SelectList(listObjects);
    }
    
  3. MyToolWindowControl.cs'de onay kutusu işleyicilerini şu kod satırlarıyla değiştirin:

    private void checkbox_Checked(object sender, RoutedEventArgs e)
     {
        pane.IsChecked = true;
        pane.SelectSimpleList();
        pane.UpdateSelection();
    }
    private void checkbox_Unchecked(object sender, RoutedEventArgs e)
    {
        pane.IsChecked = false;
        pane.SelectThisList();
        pane.UpdateSelection();
    }
    
  4. Projeyi derleyin ve hata ayıklamaya başlayın.

  5. Deneysel örnekte MyToolWindow penceresini açın.

  6. MyToolWindow penceresindeki onay kutusunu seçin. Özellikler penceresinde, SomeText ve ReadOnly nesne özellikleri görüntülenirSimple. Onay kutusunu temizleyin. Pencerenin genel özellikleri Özellikler penceresinde görüntülenir.

    Uyarı

    SomeText'in görünen adı Metnim'dir.

En iyi yöntem

Bu kılavuzda, ISelectionContainer seçilebilir nesne koleksiyonu ve seçili nesne koleksiyonunun aynı koleksiyon olması için uygulanır. Özellik Tarayıcısı listesinde yalnızca seçili nesne görüntülenir. Daha eksiksiz bir ISelectionContainer uygulaması için bkz. Reference.ToolWindow örnekleri.

Visual Studio araç pencereleri Visual Studio oturumları arasında kalıcıdır. Araç penceresi durumunu kalıcı hale döndürme hakkında daha fazla bilgi için bkz ProvideProfileAttribute. .