XMLリボンでプログラムでリボン要素にアクセスします
-
27-10-2019 - |
質問
これはここで何度か尋ねられたようです。本当の答えはありません:
オフィスリボン:XMLを使用してリボンを作成したときにコントロールにアクセスする方法
リボンXMLを使用してリボンが作成された場合、私が知る限り、そのXMLで定義されたコンポーネントのプログラム的な露出はありません。これらのコンポーネントの状態を変更する唯一の明らかな限られた方法は、オナクション、GetContent、GetImageイベントなどを使用することです。IribbonControl要素は、問題の要素を操作するためにほとんど提供しません(言うまでもなく、それらの機能のほとんどは1回しか実行されません。 、最初にレンダリングされたとき)。
そこで、これらのXMLリボン要素をプログラム的にアクセスする方法を見つけようとしています。
解決
リボンXMLを使用するときに、リボン要素をプログラム的にアクセスする方法はありません。リボンコントロールの状態を変更したい場合 - 使用する必要があります IRibbonUI.Invalidate()
レイアウトの新しいレンダリングを強制する(コールバックを介してレンダリング時に異なる動作をトリガーするプロパティを使用する可能性があります)。複数のアイテムの状態を変更している場合、描画が発生する時期をより詳細に制御できるため、これは良いことです。
見る 関連するように投稿してください リボンUI制御状態の更新について。
リボン要素へのプログラムアクセスが必要な場合は、 リボンデザイナー. 。ただし、As MSDNに記載されています, 、デザイナーはすべてのカスタマイズをサポートしていません。いくつか デザイナーがリボンXMLをラップするだけであると推測します フードの下であなたのために。
あなたはただ学ぶ必要があります リボンXMLが利用するコールバックメカニズム - アクセスを得るためのコントロールツリーはありません。