Aracılığıyla paylaş


Genişletilebilirlik Arabirimlerini Kullanarak Kullanıcı Arabirimi Özelliklerini Özelleştirme

Visual Studio Office geliştirme araçları, sınıflar ve çok sayıda uygulama ayrıntıları, özel görev bölmeleri, Şerit özelleştirmeler ve Outlook form bölgelerini uygulama düzeyi eklentisindeki oluşturmak için kullandığınız işleyen tasarımcılar sağlar.Ancak, de uygulayabilirsiniz genişletilebilirlik arabirimi her özel gereksinimleriniz varsa kendiniz özellik.

Uygulama hedefi: Bu konudaki bilgiler, Microsoft Office 2013 ve Microsoft Office 2010 için uygulama düzeyi projelere yöneliktir. Daha fazla bilgi edinmek için, bkz. Office Uygulaması ve Proje Türüne Göre Kullanılabilir Özellikler.

Genişletilebilirlik arabirimleri genel bakış

Microsoft Office COM eklentileri Şerit gibi belirli özellikleri özelleştirmek için uygulayabilirsiniz genişletilebilirlik arabirimleri kümesini tanımlar.Bu arabirimler erişimi sağlarlar özellikler üzerinde tam denetim sağlar.Ancak, bu arabirimi uygulayan COM birlikte çalışabilirlik yönetilen kod, bazı bilgisi gerektirir.Bazı durumlarda, bu arabirimler programlama modeli de .NET Framework alışkın olan geliştiriciler için sezgisel değildir.

Bir eklenti Visual Studio'da Office proje şablonları kullanarak oluşturduğunuzda Şerit gibi özellikleri özelleştirmek için Genişletilebilirlik arabirimini uygulayan gerekmez.Office çalışma zamanı için Visual Studio Araçları Bu arabirimleri sizin için uygular.Bunun yerine, daha sezgisel sınıfları ve Visual Studio tarafından sağlanan tasarımcıları kullanabilirsiniz.Ancak, isterseniz genişletilebilirlik arabirimleri doğrudan eklentinizi içinde yine de uygulayabilir.

Sınıflar ve bu özellikler için Visual Studio sağladığı tasarımcılar hakkında daha fazla bilgi için bkz Özel Görev Bölmeleri, Şerit Tasarımcısı, ve Outlook Form Bölgeleri Oluşturma.

Bir eklentisindeki uygulayabileceğiniz genişletilebilirlik arabirimleri

Aşağıdaki tablo, uygulayabileceğiniz genişletilebilirlik arabirimleri ve bunları destekleyen uygulamaları listeler.

Arabirim

Açıklama

Uygulamaları

IRibbonExtensibility

Şerit UI özelleştirmek için bu arabirimi uygulayan.

[!NOT]

Ekleyebilmek için bir Şerit (XML) öğesi bir varsayılan oluşturmak için bir proje IRibbonExtensibility eklentinizi uygulamasında.Daha fazla bilgi için bkz. Şerit XML.

Excel 2013

InfoPath 2013

Outlook 2013

PowerPoint 2013

Project 2013

Visio 2013

Word 2013

Excel 2010

InfoPath 2010

Outlook 2010

PowerPoint 2010

Project 2010

Visio 2010

Word 2010

ICustomTaskPaneConsumer

Bir özel görev bölmesi oluşturmak için bu arabirimi uygulayan.

Excel 2013

Outlook 2013

PowerPoint 2013

Word 2013

Excel 2010

Outlook 2010

PowerPoint 2010

Word 2010

FormRegionStartup

Outlook form bölgesi oluşturmak için bu arabirimi uygulayın.

Outlook 2013

Outlook 2010

Microsoft Office tarafından tanımlanan gibi diğer genişletilebilirlik arabirimleri vardır IBlogExtensibility, EncryptionProvider, ve SignatureProvider.Visual Studio Office proje şablonları kullanılarak oluşturulmuş bir eklenti olarak bu arabirimi uygulayan desteklemiyor.

Genişletilebilirlik arabirimleri kullanarak

Genişletilebilirlik arabirimini kullanarak bir kullanıcı Arabirimi özelliği özelleştirmek için eklenti projenizde uygun arabirimini uygulaması.Daha sonra geçersiz RequestService arabirimini uygulayan sınıf örneği döndürmek için yöntem.

Bunu nasıl uygulayabileceğinizi gösteren bir örnek uygulama için IRibbonExtensibility, ICustomTaskPaneConsumer, ve FormRegionStartup Outlook için bir eklenti arabirimleri bakın kullanıcı Arabirimi Yöneticisi örnek Office Geliştirme Örnekleri.

Bir Genişletilebilirlik arabirimini uygulama örneği

Aşağıdaki kod örneğinde basit bir uygulanmasını gösteren ICustomTaskPaneConsumer özel görev bölmesi oluşturmak için arabirimi.Bu örnek iki sınıf tanımlar:

  • TaskPaneHelper Sınıfının uygular ICustomTaskPaneConsumer oluşturmak ve özel görev bölmesi görüntülemek için.

  • TaskPaneUI UI görev bölmesinin sınıf sağlar.Öznitelikler için TaskPaneUI sınıf sınıfı için sınıf bulmak Microsoft Office uygulamaları sağlayan COM görünür hale.Bu örnekte, boş bir kullanıcı Arabirimi olan UserControl, ancak kodu değiştirerek denetimler ekleyebilirsiniz.

    [!NOT]

    Kullanıma sunmak için TaskPaneUI sınıfı COM için de ayarlamalısınız kaydetmek için COM ile birlikte proje için özellik.

Public Class TaskPaneHelper
    Implements Office.ICustomTaskPaneConsumer

    Friend taskPane As Office.CustomTaskPane

    Public Sub CTPFactoryAvailable(ByVal CTPFactoryInst As Office.ICTPFactory) _
        Implements Office.ICustomTaskPaneConsumer.CTPFactoryAvailable

        If CTPFactoryInst IsNot Nothing Then 
            ' Create a new task pane.
            taskPane = CTPFactoryInst.CreateCTP( _
                "Microsoft.Samples.Vsto.VB.TaskPaneUI", "Contoso")
            taskPane.Visible = True 
        End If 
    End Sub 
End Class

<System.Runtime.InteropServices.ComVisible(True)> _
<System.Runtime.InteropServices.ProgId("Microsoft.Samples.Vsto.VB.TaskPaneUI")> _
<System.Runtime.InteropServices.Guid("FFA0920E-F7A5-453d-8AB2-249F4C25B4B2")> _
Public Class TaskPaneUI
    Inherits UserControl
End Class
public class TaskPaneHelper : Office.ICustomTaskPaneConsumer
{
    internal Office.CustomTaskPane taskPane;

    public void CTPFactoryAvailable(Office.ICTPFactory CTPFactoryInst)
    {
        if (CTPFactoryInst != null)
        {
            // Create a new task pane.
            taskPane = CTPFactoryInst.CreateCTP(
                "Microsoft.Samples.Vsto.CS.TaskPaneUI",
                "Contoso");
            taskPane.Visible = true;
        }
    }
}

[System.Runtime.InteropServices.ComVisible(true)]
[System.Runtime.InteropServices.ProgId("Microsoft.Samples.Vsto.CS.TaskPaneUI")]
[System.Runtime.InteropServices.Guid("FFA0920E-F7A5-453d-8AB2-249F4C25B4B2")]
public class TaskPaneUI : UserControl
{
}

Uygulama hakkında daha fazla bilgi için ICustomTaskPaneConsumer, bakın 2007 Office sistemi özel görev bölmeleri oluşturma Microsoft Office belgelerinde.

Örnek RequestService yöntemini geçersiz kılma

Aşağıdaki kod örneğinde, geçersiz kılmak nasıl kullanılacağını göstermektedir RequestService bir örneğini döndürmek için yöntemi TaskPaneHelper sınıfından önceki kod örneği.Değeri kontrol serviceGuid hangi arabirimi istenen ve ardından arabirimi uygulayan bir nesne döndürür belirlemek için parametre.

Friend taskPaneHelper1 As TaskPaneHelper

Protected Overrides Function RequestService( _
    ByVal serviceGuid As Guid) As Object 

    If (serviceGuid = GetType(Office.ICustomTaskPaneConsumer).GUID) Then 
        If (taskPaneHelper1 Is Nothing) Then
            taskPaneHelper1 = New TaskPaneHelper()
        End If 
        Return taskPaneHelper1
    End If 

    Return MyBase.RequestService(serviceGuid)
End Function
internal TaskPaneHelper taskPaneHelper1;

protected override object RequestService(Guid serviceGuid)
{
    if (serviceGuid == typeof(Office.ICustomTaskPaneConsumer).GUID)
    {
        if (taskPaneHelper1 == null)
        {
            taskPaneHelper1 = new TaskPaneHelper();
        }
        return taskPaneHelper1;
    }

    return base.RequestService(serviceGuid);
}

Ayrıca bkz.

Görevler

Nasıl Yapılır: Visual Studio'da Office Projeleri Oluşturma

Kavramlar

Uygulama Düzeyi Eklentilerinde Diğer Office Çözümlerinden Kod Çağırma

Uygulama Düzeyi Eklentileri Mimarisi

Diğer Kaynaklar

Office Geliştirme Örnekleri ve İzlenecek Yollar

Uygulama Düzeyi Eklentileri Programlama

Office Çözümleri Geliştirme