Udostępnij za pośrednictwem


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

IRibbonExtensibility

Implementuje ten interfejs, aby dostosować na wstążce interfejsu użytkownika.

[!UWAGA]

Możesz dodać wstążki (XML) element do projektu do generowania domyślnego IRibbonExtensibility implementacji w dodatku.Aby uzyskać więcej informacji, zobacz XML — Wstążka.

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

Implementuje ten interfejs do tworzenia niestandardowego okienka zadań.

Excel 2013

Outlook 2013

PowerPoint 2013

Word 2013

Excel 2010

Outlook 2010

PowerPoint 2010

Word 2010

FormRegionStartup

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

Programowanie dodatków na poziomie aplikacji

Tworzenie rozwiązań pakietu Office