Aracılığıyla paylaş


Özellikleri Özellikler penceresi kullanıma 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 penceresi kullanıma 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 penceresi kullanıma sunma

  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" araması yaparak VSIX proje şablonunu Yeni Proje iletişim kutusunda bulabilirsiniz.

  2. adlı MyToolWindowbir Özel Araç Penceresi öğe şablonu ekleyerek bir araç penceresi ekleyin. Çözüm Gezgini proje düğümüne sağ tıklayın ve Yeni Öğe Ekle'yi>seçin. Yeni Öğe Ekle iletişim kutusunda Visual C# Öğeleri>Genişletilebilirliği'negidin 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 dosyasını 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, arabirim sağlayan ITrackSelection bir STrackSelection hizmeti almak için kullanırGetService. 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. Diğer Pencereleri Görüntüle'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 penceresi başlık uygun şekilde değişir.

Araç penceresi özelliklerini kullanıma sunma

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

Araç penceresi özelliklerini kullanıma sunma

  1. MyToolWindow.cs dosyasını 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 dosyasını açın ve MyToolWindowControl oluşturucusunun yerine aşağıdaki kodu yazın.

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

    Bu, bölmeye MyToolWindow erişim sağlarMyToolWindowControl.

  3. MyToolWindow.cs dosyasında 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. İşaretli ve İşaretsiz 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 IsChecked değeri True olarak değişir. MyToolWindow penceresindeki onay kutusunu temizleyin. Özellikler penceresinde isChecked değeri False 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.

    Dekont

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

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 dosyasını 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ğin MyToolWindow yanı sıra, pencere bölmesi ile Simple nesne arasında Özellikler penceresi seçimini değiştirmek için 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 dosyasında, 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 kutusunun işaretini kaldırın. Pencerenin genel özellikleri Özellikler penceresinde görüntülenir.

    Dekont

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

En iyi uygulama

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. .