2011-11-07 3 views
0

の2つのリボンをロードします.1つはメインリボンに、もう1つはバックステージにロードします。私は、オーバーライドメソッド内の2つをロードする必要があるが、私はトラブルを抱えています:1つのロードで2つのリボンを開き、c#

protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject() 
{ 
    return Globals.Factory.GetRibbonFactory().CreateRibbonManager(new Microsoft.Office.Tools.Ribbon.IRibbonExtension[] 
    { 
      new Ribbon1(), 
      new Backstage() as Microsoft.Office.Tools.Ribbon.IRibbonExtension 
    }); 
} 

私はこれを行う場合、私はそれをこのように行う場合、Ribbon1が表示されますが、舞台裏ではないでしょう:

protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject() 
{ 
    return new Microsoft.Office.Tools.Ribbon.RibbonManager(new Microsoft.Office.Tools.Ribbon.OfficeRibbon[] 
    { 
     new Ribbon1() as Microsoft.Office.Tools.Ribbon.OfficeRibbon, 
     new Backstage() as Microsoft.Office.Tools.Ribbon.OfficeRibbon 
    }); 
} 

RibbonManagerと抽象クラスまたはインターフェイスのインスタンスを作成することはできません。 私は立ち往生しています、誰かを助けることができますか?

答えて

0

私はあなたが実際にこれを行うことはできませんが、私は多くのようには見えない興味のある人のための仕事を開発したと思います。実際には、2つのXMLを組み合わせて、Backstageリボンと連動したタンデムビジュアルデザイナーリボンを得ることができます。唯一の問題は、ビジュアルデザイナーを使用してアイテムをさらに作成することができないことです。悪い方法はありますが、エンドユーザーがボタンやその他のアイテムをリボンに追加したい場合は、これが問題になります。だから、私がしたのは、2つのプロジェクトを1つのソリューションに追加することでした。そして、2つのプロジェクトをお互いに話しかけるだけで、あなたの答えが得られます。

[ComVisible(true)] 
[ComDefaultInterface(typeof(IBackStageInfo))] 

そして、それは本当にです:あなたは、舞台裏であなたのメインのリボンのための参照を持っている、あなたは舞台裏リボンでCOMオブジェクトを作成していることを確認してください。それほど悪くない。

関連する問題