Genişletilebilirlik Arabirimi Kullanarak Kullanıcı Arabirimi (KA) Özelliklerini Özelleştirme
Sınıflar ve tasarımcılar, uygulama düzeyi eklentilerinde özel görev bölmeleri, Şerit özelleştirmeleri ve Outlook form bölgeleri oluşturmak için kullandığınız birçok uygulama ayrıntılarını işleyen Visual Studio Office geliştirme araçları sağlar.Ancak, özel gereksinimleriniz varsa Genişletilebilirlik arabirimini her özellik için de uygulayabilirsiniz.
Uygulama alanı: Bu konudaki bilgiler Microsoft Office 2013 ve Microsoft Office 2010'un uygulama düzeyi projelerine yöneliktir. Daha fazla bilgi için bkz. Office Uygulamalarında Kullanılabilir Özellikler ve Proje Türü.
Genişletilebilirlik Arabirimleri Genel Bakışı
Microsoft Office com eklentilerinin Şerit gibi belirli özellikleri özelleştirmek için uygulayabileceğiniz genişletilebilirlik arabirimleri kümesi tanımlar.Bu arabirimler erişim sağladıkları özellikler üzerinde tam denetim sağlarlar.Ancak, bu arabirimleri uygulamak yönetilen kodda COM birlikte çalışabilirliği hakkında biraz bilgi gerektirir.Bazı durumlarda, bu arabirimlerin programlama modeli .NET Framework'e alışkın bazı geliştiriciler için de sezgisel değildir.
Bir eklentiyi Visual Studio'da Office proje şablonları kullanarak oluşturduğunuz zaman Şerit gibi özellikleri özelleştirmek için Genişletilebilirlik arabirimini uygulamak zorunda değildir.Office için Visual Studio Araçları çalışma zamanı modülü bu arabirimleri sizin için uygular.Bunun yerine, Visual Studio'nun sağladığı daha sezgisel sınıfları ve tasarımcıları kullanabilirsiniz.Ancak, isterseniz genişletilebilirlik arabirimini yine de uygulayabilirsiniz.
Bu özellikler için Visual Studio'nun sağladığı sınıflar ve 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 Yaratma.
Bir Eklentide Uygulayabileceğiniz Genişletilebilirlik Arabirimleri
Aşağıdaki tablo, uygulayabileceğiniz genişletilebilirlik arabirimlerini ve onları destekleyen uygulamaları listeler.
Arabirim |
Tanımlama |
Applications |
---|---|---|
Şerit UI ' ı özelleştirmek için bu arabirimi uygulayın.
Not
Ekleyebileceğiniz bir Şerit (xml) varsayılan oluşturmak için bir proje için madde Microsoft.Office.Core.IRibbonExtensibility eklenti 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 |
|
Özel görev bölmesi oluşturmak için bu arabirimi uygulayın. |
Excel 2013 Outlook 2013 PowerPoint 2013 Word 2013 Excel 2010 Outlook 2010 PowerPoint 2010 Word 2010 |
|
Özel görev bölmesi oluşturmak için bu arabirimi uygulayın. |
Outlook 2013 Outlook 2010 |
Microsoft.Office.Core.IBlogExtensibility, Microsoft.Office.Core.EncryptionProvider ve Microsoft.Office.Core.SignatureProvider gibi Microsoft Office tarafından tanımlanan diğer birkaç genişletilebilirlik arabirimi vardır.Visual Studio, Office proje şablonları kullanılarak oluşturulmus bir eklentide bu arabirimlerin uygulanmasını desteklemez.
Genişletilebilirlik Arabirimlerini Kullanma
Genişletilebilirlik arabirimi kullanarak bir KA özelliğini özelleştirmek için eklenti projenizdeki münasip bir arabirimi uygulayın.Ardından, arabirimi uygulayan sınıfın bir örneğini döndürmek için RequestService yöntemini geçersiz kılın.
Nasıl uygulanacağını gösteren bir örnek uygulama için Microsoft.Office.Core.IRibbonExtensibility, Microsoft.Office.Core.ICustomTaskPaneConsumer, ve Microsoft.Office.Interop.Outlook.FormRegionStartup , Outlook bir eklenti arabirimleri Bkz: kullanıcı Arabirimi Yöneticisi örnek Office Geliştirme Örnekleri.
Bir Genişletilebilirlik Arabirimini Uygulama Örneği
Aşağıdaki kod örneğinde, özel görev bölmeleri oluşturmak için Microsoft.Office.Core.ICustomTaskPaneConsumer arabiriminin basit bir uygulaması gösterilmektedir.Bu örnekte iki sınıf tanımlanır:
TaskPaneHelper sınıfı özel bir görev bölmesi oluşturup görüntülemek için Microsoft.Office.Core.ICustomTaskPaneConsumer'ı uygulamaktadır.
TaskPaneUI sınıfı, görev bölmesinin KA'sını sağlar.TaskPaneUI sınıfının öznitelikleri, Microsoft Office uygulamalarını sınıfı keşfetmek için etkinleştiren COM'a sınıfı görünür kılar.Bu örnekte KA boş bir UserControl'dür, fakat kodu değiştirerek denetimler ekleyebilirsiniz.
[!NOT]
TaskPaneUI sınıfını COM'un kullanımına açmak için projenin COM Birlikte Çalışma için kaydol özelliğini ayarlamanız gerekir.Daha fazla bilgi için bkz. Derleme özelliklerini yönetme.
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
{
}
Microsoft.Office.Core.ICustomTaskPaneConsumer'ı uygulamak hakkında daha fazla bilgi için Microsof Office belgelerindeki 2007 Office Sisteminde Özel Görev Bölmeleri Oluşturma'ya bakınız.
RequestService (Hizmet Talep Et) Yöntemini Geçersiz Kılma Örneği
Aşağıdaki kod örneğinde, bir önceki kod örneğindeki TaskPaneHelper sınıfının bir örneğini döndürmek için RequestService yönteminin nasıl geçersiz kılındığı gösterilmektedir.Kod, hangi arabirimin talep edildiğine karar vermek için serviceGuid parametresinin değerini kontrol eder ve arabirimi uygulayan bir nesne döndürür.
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 Office projeler oluşturmak
Kavramlar
Uygulama Düzeyi Eklentilerindeki Kodu Başka Office Çözümlerinden Çağırma
Uygulama Düzeyi Eklentisi Mimarisi
Diğer Kaynaklar
Office Geliştirme Örnekleri ve İzlenecek Yollar