Udostępnij za pośrednictwem


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

Microsoft.Office.Core.IRibbonExtensibility

Implementuje ten interfejs do dostosowania wstążki interfejsu użytkownika.

UwagaUwaga
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

Microsoft.Office.Core.ICustomTaskPaneConsumer

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

Microsoft.Office.Interop.Outlook.FormRegionStartup

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.

Bb608601.collapse_all(pl-pl,VS.110).gifPrzykł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.

Bb608601.collapse_all(pl-pl,VS.110).gifPrzykł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

Programowanie aplikacji poziom dodatki

Tworzenie rozwiązań dla pakietu Office