Sdílet prostřednictvím


Přizpůsobení funkcí uživatelského rozhraní pomocí rozšiřujících rozhraní

Nástroje pro vývoj pro Office v sadě Visual Studio poskytují třídy a návrhářů, které zpracovávají mnoho podrobnosti implementace, pokud je použita k vytvoření vlastní podokna úloh, vlastní nastavení pásu karet a oblasti formulářů aplikace Outlook v doplňku úrovni aplikace.Však můžete také implementovat rozšiřitelnost rozhraní pro každou funkci sami, pokud máte zvláštní požadavky.

Platí pro: Informace v tomto tématu se vztahují na projekty na úrovni aplikace v Microsoft Office 2013 a Microsoft Office 2010. Další informace najdete v tématu Dostupné funkce podle aplikací systému Office a typů projektu.

Přehled rozšiřitelnost rozhraní

Aplikace Microsoft Office definuje sadu rozhraní rozšiřitelnosti, implementující doplňky modelu COM Chcete-li přizpůsobit určité funkce, například na pásu karet.Tato rozhraní poskytují plnou kontrolu nad funkce, které poskytují přístup k.Implementace těchto rozhraní však vyžaduje určitou znalost COM interoperability ve spravovaném kódu.V některých případech programovací model z těchto rozhraní není také intuitivní pro vývojáře, kteří jsou zvyklí na rozhraní .NET Framework.

Když vytvoříte doplněk pomocí šablon projektů sady Office v sadě Visual Studio, není třeba implementují rozhraní rozšiřitelnosti, chcete-li přizpůsobit funkcí, jako je pásu karet.Visual Studio Tools for Office runtime Implementuje tato rozhraní pro vás.Namísto toho můžete více intuitivní třídy a návrháři poskytované Visual Studiem.Však můžete stále implementovat rozhraní rozšiřitelnosti přímo z vašeho doplňku Pokud byste chtěli.

Další informace o třídách a návrhářů, které poskytuje Visual Studio pro tyto funkce naleznete v tématu Vlastní podokna úloh, Návrhář pásu karet, a Vytváření oblastí formulářů aplikace Outlook.

Rozšiřitelnost rozhraní, které můžete implementovat v doplněk.

V následující tabulce jsou uvedeny rozhraní rozšiřitelnosti, kterou může implementovat a aplikací, které je podporují.

Rozhraní

Popis

Aplikace

IRibbonExtensibility

Implementujte toto rozhraní k přizpůsobení uživatelského rozhraní pásu karet.

[!POZNÁMKA]

Můžete přidat pásu karet (XML) položku do projektu ke generování výchozí IRibbonExtensibility implementace v doplněk.Další informace naleznete v tématu Pás karet – 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

ICustomTaskPaneConsumer

Implementujte toto rozhraní k vytvoření vlastního podokna úloh.

Excel 2013

Outlook 2013

PowerPoint 2013

Word 2013

Excel 2010

Outlook 2010

PowerPoint 2010

Word 2010

FormRegionStartup

Implementujte toto rozhraní k vytvoření oblasti formuláře aplikace Outlook.

Outlook 2013

Outlook 2010

Existuje několik dalších rozšiřitelnost rozhraní, které jsou definovány aplikace Microsoft Office, jako je například IBlogExtensibility, EncryptionProvider, a SignatureProvider.Visual Studio nepodporuje implementace těchto rozhraní v doplňku aplikace vytvořené pomocí šablony projektu sady Office.

Použití rozhraní rozšiřitelnosti

Chcete-li přizpůsobit funkci uživatelského rozhraní pomocí rozhraní rozšiřitelnosti, implementujte rozhraní odpovídající v projektu doplňku.Potom přepsat RequestService metody, která vrátí instanci třídy, která implementuje rozhraní.

Pro ukázku aplikace, která ukazuje, jak implementovat IRibbonExtensibility, ICustomTaskPaneConsumer, a FormRegionStartup rozhraní v doplňku pro aplikaci Outlook, naleznete v ukázce uživatelského rozhraní správce v Ukázky vývoje pro systém Office.

Příklad implementace rozhraní rozšiřitelnosti

Následující příklad kódu ukazuje jednoduchou implementaci ICustomTaskPaneConsumer rozhraní k vytvoření vlastního podokna úloh.Tento příklad definuje dvě třídy:

  • TaskPaneHelper Implementuje třída ICustomTaskPaneConsumer vytvoření a zobrazení vlastní podokno úloh.

  • TaskPaneUI Třída poskytuje uživatelského rozhraní v podokně úloh.Atributy TaskPaneUI třídy zpřístupněte třídu pro COM, což umožňuje, aby aplikace Microsoft Office zjistit třídu.V tomto příkladu uživatelského rozhraní je prázdné UserControl, ale ovládací prvky můžete přidat úpravou kódu.

    [!POZNÁMKA]

    Vystavit TaskPaneUI třídy k modelu COM, je nutné také nastavit zaregistrovat pro spolupráci s COM vlastnosti 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
{
}

Další informace o implementaci ICustomTaskPaneConsumer, naleznete v části vytváření vlastních podoken v systému Office 2007 v dokumentaci aplikace Microsoft Office.

Příklad přepsání metody RequestService

Následující příklad kódu ukazuje, jak lze přepsat RequestService metody, která vrátí instanci TaskPaneHelper třídy z předchozího příkladu kódu.Ověří, hodnota serviceGuid parametr určit, které rozhraní je vyžadován a vrátí objekt, který implementuje rozhraní.

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);
}

Viz také

Úkoly

Postupy: Vytváření projektů pro systém Office v prostředí Visual Studio

Koncepty

Volání kódu v doplňcích na úrovni aplikace z jiných řešení pro systém Office

Architektura doplňků na úrovni aplikace

Další zdroje

Ukázky a návody k vývoji pro systém Office

Programování doplňků na úrovni aplikace

Vývoj řešení pro systém Office