2016-06-13 18 views
3

WindowsリボンフレームワークとC#を使用して動的にタブを追加する方法があるかどうかを知りたいと思います。WindowsリボンフレームワークとC#でリボンにタブを動的に追加する

私は拡張性が必要なアプリケーションを開発しています。 Managed Extensibility Frameworkを使用して、発見したプラグインのリボンに新しいタブを動的にインストールするようにします。

プラグインを追加して後で発見できるので、リボンのXMLマークアップに頼ることはできません。

実行時に新しいタブをインストールする方法がある場合は、新しいプラグインをリボンタブに追加し、それらの機能をインストール済みのタブのボタンで公開します。

専門家の対応方法を教えていただければ幸いです。前もって感謝します。

答えて

0

このような動的な方法では不可能だと思います。

  • はあなたがアプリケーションを持っているとIUIFramework::LoadUIを使用して、適切なリソースをロードする可能性があるプラグインの組み合わせごとにマークアップリソースを作成します。私はここでは二つの選択肢、それらの両方はおそらくないあなたがが意図したものを参照してください。これはもちろん静的なので、プラグインシステムの考え方と矛盾します。
  • プラグインごとに「コンテキストタブ」を定義します。これらのタブは、実行時に動的に表示/非表示にすることができます。ただし、実行時に新しいコンテキストタブを作成することはできません。これはやはり静的な解決策です。

これらの2つは、実際には問題の解決策ではありませんが、少なくとも質問に対する回答です。

+0

ありがとうございました。 Excelはアドインを検出して新しいタブとして追加できるので、最初はそれがうまくいくと思っていました。私はあなたが提案したような選択肢を試してみます。 –

+0

Excel/OfficeはWindowsリボンフレームワークを使用せず、同じUIコンセプトの全く異なる実装を使用します。 Officeで使用されるアドインの概念は、自分のアプリケーションに再利用/適合させることはできません。 –

関連する問題