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ı |
---|---|---|
Şerit UI özelleştirmek için bu arabirimi uygulayan.
|
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 |
|
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 |
|
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