功能区XML代码在这里,
<ribbon>
<tabs>
<tab idMso="TabReadMessage">
<group id="grpMessageRibbon" Label="My Group">
<button id="btnTest" Label="My Button" size="large" />
</group>
</tab>
</tabs>
</ribbon>
功能区XML加载基于它的功能区ID。
public string GetCustomUI(string ribbonID)
{
string ribbonXML = String.Empty;
if (ribbonID == "Microsoft.Outlook.Report")
{
ribbonXML = GetResourceText("MicrosoftOutlookReport.xml");
}
return ribbonXML;
}
谢谢
屏幕截图中显示的内置选项卡的idMso是TabReadMessage
。您只需要在GetCustomUI
回调中返回适当的功能区XML标记。
Microsoft Office应用程序调用GetCustomUI方法以获取定义自定义功能区的用户界面的XML字符串。
public class Connect : Object, Extensibility.IDTExtensibility2, IRibbonExtensibility
...
public string GetCustomUI(string RibbonID)
{
StreamReader customUIReader = new System.IO.StreamReader("C:\\RibbonXSampleCS\\customUI.xml");
string customUIData = customUIReader.ReadToEnd();
return customUIData;
}
注意,有时您需要为作为参数传递的不同ribbonID
值返回XML标记。在这种情况下,您将获得调用的onLoad
回调(对于检查员也是如此)。
public string GetCustomUI(string ribbonID)
{
string ribbonXML = String.Empty;
if (ribbonID == "Microsoft.Outlook.Mail.Read")
{
ribbonXML = GetResourceText("Trin_RibbonOutlookBasic.Ribbon1.xml");
}
return ribbonXML;
}
有关更多信息,请参阅Customizing a Ribbon for Outlook。
您可以在MSDN的以下系列文章中阅读有关Fluent UI(aka Ribbon UI)的更多信息:
请记住,默认情况下,如果VSTO加载项尝试操作Microsoft Office用户界面(UI)并失败,则不会显示任何错误消息。但是,您可以将Microsoft Office应用程序配置为显示与UI相关的错误的消息。您可以使用这些消息来帮助确定未显示自定义功能区的原因,或者为何显示功能区但未显示控件的原因。有关更多信息,请参阅How to: Show Add-in User Interface Errors。