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 |
---|---|---|
Implementujte toto rozhraní k přizpůsobení uživatelského rozhraní pásu karet.
|
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 |
|
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 |
|
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