MS Office 2010アプリケーション レベルのアドインがあり、それが読み込まれると、カスタム タブのすべてのリボン コントロールが無効になります。次に、特定の条件に基づいて、このメソッドを実行して、カスタム タブのすべてのリボン コントロールを有効にします。
public void EnableRibbonControls()
{
IUnityContainer container = ServiceLocator.Current.GetInstance<IUnityContainer>();
RibbonTab customTab = container.Resolve<RibbonTab>();
for (int i = 0; i < customTab.Groups.Count; i++)
{
IList<RibbonControl> controls = customTab.Groups[i].Items;
foreach (var control in controls)
{
control.Enabled = true;
}
}
}
問題は、このコードにより、開いているすべてのWord ドキュメントのリボンでリボン コントロールが有効になり、作業中の特定のドキュメントでは有効にならないことです。
これを修正する唯一の方法がドキュメント レベルのアドインを実装することなのか、それともアプリケーション レベルのアドインでこれを回避する方法を誰かが知っているのかを知りたいです。