Dostosowywanie funkcji interfejsu użytkownika korzystając z rozszerzalności interfejsów
Narzędzia Office development w programie Visual Studio można znaleźć klas i projektantów obsługujące wiele szczegóły implementacji, korzystając z nich można tworzyć niestandardowe okienka zadań, dostosowania Wstążki i regionów formularzy programu Outlook w poziomie aplikacji dodatku.Jednak można również implementować rozszerzalności interfejsu dla każdej funkcji samodzielnie, jeśli masz specjalne wymagania.
Zastosowanie: Informacje przedstawione w tym temacie mają zastosowanie do projektów na poziomie aplikacji obsługiwanych w pakietach Microsoft Office 2013 i Microsoft Office 2010. Aby uzyskać więcej informacji, zobacz Funkcje dostępne w aplikacjach pakietu Office i typ projektu.
Omówienie interfejsów rozszerzania
Microsoft Office definiuje zestaw interfejsy rozszerzeń, które dodatki COM można zaimplementować dostosować niektóre funkcje, takie jak wstążki.Interfejsy te zapewniają pełną kontrolę nad funkcjami, które zapewniają dostęp do.Jednak wprowadzeniem tych interfejsów wymaga pewnej wiedzy na temat modelu COM współpraca w kodzie zarządzanym.W niektórych przypadkach model programowania tych interfejsów również nie jest wyposażony w intuicyjny dla programistów, którzy są przyzwyczajeni do programu .NET Framework.
Podczas tworzenia dodatku przy użyciu szablony projektów pakietu Office w programie Visual Studio, nie trzeba zaimplementować interfejsy rozszerzeń, aby dostosować funkcje, takie jak wstążki.Visual Studio Tools for Office Runtime Implementuje interfejsy te dla Ciebie.Zamiast tego można użyć bardziej intuicyjny klas i projektantów udostępnione przez program Visual Studio.Jednak można nadal implementować interfejsy rozszerzeń bezpośrednio w dodatku aby.
Aby uzyskać więcej informacji na temat klas i projektantów, które program Visual Studio zapewnia następujące funkcje, zobacz Niestandardowe okienka zadań, Projektant wstążki, i Tworzenie regionów formularzy w programie Outlook.
Interfejsy rozszerzeń, które można zaimplementować w dodatku
Poniższa lista zawiera interfejsy rozszerzeń, które można zaimplementować i aplikacje, które je obsługują.
Interface |
Opis |
Aplikacje |
---|---|---|
Implementuje ten interfejs, aby dostosować na wstążce interfejsu użytkownika.
|
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 |
|
Implementuje ten interfejs do tworzenia niestandardowego okienka zadań. |
Excel 2013 Outlook 2013 PowerPoint 2013 Word 2013 Excel 2010 Outlook 2010 PowerPoint 2010 Word 2010 |
|
Implementuje ten interfejs, aby utworzyć obszar formularza programu Outlook. |
Outlook 2013 Outlook 2010 |
Istnieje kilka innych interfejsów rozszerzania zdefiniowanych przez program Microsoft Office, takich jak IBlogExtensibility, EncryptionProvider, i SignatureProvider.Program Visual Studio nie obsługuje wprowadzeniem tych interfejsów w dodatku utworzone za pomocą pakietu Office szablony projektów.
Za pomocą interfejsów rozszerzania
Aby dostosować funkcji interfejsu użytkownika przy użyciu interfejsu rozszerzania, implementują interfejsu odpowiednie w projekcie dodatków.Następnie należy zastąpić RequestService metodę w celu zwrócenia wystąpienia klasy, która implementuje interfejs.
Przykładowej aplikacji, który pokazuje, jak zaimplementować IRibbonExtensibility, ICustomTaskPaneConsumer, i FormRegionStartup interfejsy w dodatek dla programu Outlook, zobacz przykład interfejsu użytkownika menedżera w Office Development ― Przykłady.
Przykład implementujące interfejs rozszerzania
Poniższy przykładowy kod przedstawia prostą wykonania ICustomTaskPaneConsumer interfejs służący do tworzenia niestandardowego okienka zadań.W tym przykładzie zdefiniowano dwie klasy:
TaskPaneHelper Klasy implementuje ICustomTaskPaneConsumer utworzyć i wyświetlić niestandardowego okienka zadań.
TaskPaneUI Udostępnia interfejs użytkownika okienka zadań.Atrybuty dla TaskPaneUI klasy zwiększyć klasy modelu COM, która umożliwia tworzenie aplikacji Microsoft Office do wykrywania tej klasy.W tym przykładzie interfejs użytkownika jest pusta UserControl, ale możesz dodać formanty, modyfikowania kodu.
[!UWAGA]
Do udostępnienia TaskPaneUI klasy w modelu COM, należy także ustawić zarejestrować com. właściwości dla projektu.
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
{
}
Aby uzyskać więcej informacji dotyczących implementowania ICustomTaskPaneConsumer, zobacz Tworzenie niestandardowych okienek systemu Office 2007 w dokumentacji programu Microsoft Office.
Przykład zastąpienie metody RequestService
Poniższy przykładowy kod pokazuje, jak zastąpić RequestService metodę w celu zwrócenia wystąpienia TaskPaneHelper klasy z poprzedniego przykładu kodu.Sprawdza wartość serviceGuid parametru, aby określić, który interfejs jest wymagany, a następnie zwraca obiekt, który implementuje ten interfejs.
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);
}
Zobacz też
Zadania
Porady: tworzenie projektów Office w Visual Studio
Koncepcje
Wywoływanie kodu w dodatkach na poziomie aplikacji z innych rozwiązań pakietu Office
Architektura dodatków na poziomie aplikacji
Inne zasoby
Office Development ― Przykłady i wskazówki