Dostosowywanie funkcji interfejsu użytkownika przy użyciu interfejsów rozszerzalności
Narzędzia programistyczne Office w programie Visual Studio dostarczanie klas i projektantów, które obsługują wiele szczegółów implementacji gdy służy do tworzenia niestandardowych okienek zadań, dostosowania Wstążki i regionów formularzy programu Outlook w poziomie aplikacji dodatek.Jednakże, mogą także implementować rozszerzalności interfejsu dla każdej funkcji samodzielnie, jeśli masz specjalne wymagania.
Dotyczy: Informacje przedstawione w tym temacie dotyczą projektów na poziomie aplikacji dla pakietu Microsoft Office 2013 i Microsoft Office 2010. Aby uzyskać więcej informacji, zobacz Funkcje dostępne w aplikacji pakietu Office i typ projektu
Omówienie interfejsów rozszerzalności
Microsoft Office definiuje zestaw interfejsów rozszerzalność implementujące dodatków, aby dostosować niektóre funkcje, takie jak wstążki.Interfejsy te zapewniają pełną kontrolę nad zapewniają dostęp do funkcji.Jednak wykonania tych interfejsów wymaga pewnej wiedzy na temat współdziałania COM w kodzie zarządzanym.W niektórych przypadkach model programowania interfejsy te również nie jest intuicyjny dla deweloperów, którzy są przyzwyczajeni do.NET Framework.
Podczas tworzenia dodatku przy użyciu szablonów projektu pakietu Office w programie Visual Studio nie trzeba implementować interfejsów rozszerzeń, aby dostosować funkcje, takie jak Wstążka.Visual Studio 2010 Tools for Office Runtime Wdraża tych interfejsów.Zamiast tego można użyć bardziej intuicyjny klas i projektantów przez Visual Studio.Jednakże można nadal zaimplementować interfejsy rozszerzeń bezpośrednio w dodatku, jeśli chcesz.
Aby uzyskać więcej informacji na temat klas i projektantów, Visual Studio zawiera tych funkcji, zobacz Niestandardowe okienka zadań, Projektant wstążki, i Tworzenie regionów formularzy programu Outlook.
Interfejsy rozszerzeń, można zaimplementować w dodatku
Poniższa lista zawiera interfejsy rozszerzeń, można zaimplementować i aplikacji, które je obsługują.
Interfejs |
Opis |
Aplikacje |
---|---|---|
Implementuje ten interfejs do dostosowania wstążki interfejsu użytkownika.
Uwaga
Można dodać Wstążki (XML) element do projektu, aby wygenerować domyślna Microsoft.Office.Core.IRibbonExtensibility implementacja w dodatku.Aby uzyskać więcej informacji, zobacz Wstążka XML.
|
Excel 2013 InfoPath 2013 Outlook 2013 PowerPoint 2013 Project 2013 Visio 2013 Word 2013 Program Excel 2010 Program InfoPath 2010 Program Outlook 2010 Program PowerPoint 2010 Program Project 2010 Visio 2010 Word 2010 |
|
Implementuje ten interfejs do tworzenia niestandardowych okienko zadań. |
Excel 2013 Outlook 2013 PowerPoint 2013 Word 2013 Program Excel 2010 Program Outlook 2010 Program PowerPoint 2010 Word 2010 |
|
Implementuje ten interfejs, aby utworzyć obszar formularza programu Outlook. |
Outlook 2013 Program Outlook 2010 |
Istnieje kilka interfejsów rozszerzeń, w które są zdefiniowane przez program Microsoft Office, takich jak Microsoft.Office.Core.IBlogExtensibility, Microsoft.Office.Core.EncryptionProvider, i Microsoft.Office.Core.SignatureProvider.Visual Studio nie obsługuje implementacji tych interfejsów w dodatku utworzone przy użyciu szablonów projektu pakietu Office.
Za pomocą interfejsów rozszerzalności
Do dostosowywania funkcji interfejsu użytkownika przy użyciu interfejsu rozszerzeń, należy zaimplementować odpowiedni interfejs w projekcie w.Następnie należy zastąpić RequestService metoda zwraca instancji klasy, która implementuje interfejs.
Na przykładowej aplikacji, który pokazuje, jak wdrożyć Microsoft.Office.Core.IRibbonExtensibility, Microsoft.Office.Core.ICustomTaskPaneConsumer, i Microsoft.Office.Interop.Outlook.FormRegionStartup interfejsów w dodatek dla programu Outlook, zobacz przykładowy interfejs użytkownika menedżera w Przykłady programowania pakietu Office.
Przykładem implementacji interfejsów rozszerzalności
Poniższy przykład kodu pokazuje prostego wykonania Microsoft.Office.Core.ICustomTaskPaneConsumer interfejs do tworzenia niestandardowych okienko zadań.W tym przykładzie definiuje dwie klasy:
TaskPaneHelper Klasy implementuje Microsoft.Office.Core.ICustomTaskPaneConsumer do tworzenia i wyświetlania niestandardowej okienko zadań.
TaskPaneUI Klasy udostępnia interfejs użytkownika z okienko zadań.Atrybuty dla TaskPaneUI klasy uwidocznić klasy COM, który umożliwia aplikacji Microsoft Office odkryć klasy.W tym przykładzie interfejs użytkownika jest puste UserControl, ale można dodać formanty przez zmodyfikowanie kodu.
[!UWAGA]
Aby odsłonić TaskPaneUI klasy COM, należy także ustawić zarejestrować do współdziałania z modelem COM właściwość dla projektu.Aby uzyskać więcej informacji, zobacz Zarządzanie właściwościami kompilacji.
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 Microsoft.Office.Core.ICustomTaskPaneConsumer, zobacz Tworzenie niestandardowych okienek zadań pakietu Office System 2007 w dokumentacji programu Microsoft Office.
Przykład zastąpienie metody RequestService
Poniższy przykład kodu demonstruje, jak zastąpić RequestService metoda zwraca wystąpienie TaskPaneHelper klasy z poprzedniego przykładu kodu.Sprawdza wartość serviceGuid parametru, aby określić, który interfejs wymagane jest, 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
Jak: tworzenie projektów pakietu Office w programie Visual Studio
Koncepcje
Wywołanie kodu w dodatki poziomie aplikacji z innych rozwiązań pakietu Office
Architektura dodatków poziomie aplikacji
Inne zasoby
Przykłady programowania pakietu Office oraz instruktaże