組み込みのコントロールを表示したい

今回もリボンXMLネタです。

どうもリボン(ビジュアルなデザイナー)で作ろうとすると、完全にカスタマイズしたい場合は、こちらを使ってもいいんですけど、組み込みの機能を一部使いたいような場合は、リボンXMLで作った方がよさげです(というかやり方が分からなかった)。

そこで、リボンXMLを使ってカスタムタブを作成しているのですが、1つ困ったことになりました。

「塗りつぶし」のようなコントロール(gallery)がうまく表現できません。

今日はこのことについてシェアしていきたいと思います。

現状

下記のサイトに組み込みのコントロールについてのIDの一覧を取得することができます。

http://www.microsoft.com/en-us/download/details.aspx?id=3582

これを使うと、なんとさくっと既存の組み込みコントロールを移植できてしまいます。

例えば、こんな風に記述すると、Excelのフォント変更のコンボボックスを表示できてしまいます。

 

ribbonxml_font変更コントロール

こんな風にするには、コントロールの属性「@idMso」に予約されたIDを記述するだけ。

先ほどの例で言うと、フォント名変更のコントロールの予約されたIDは「Font」なので、「idMso=”Font”」と記述します。

ちなみに完全に自前でコンボボックスを作成する場合は、「@idMso」ではなく、「@id」を設定します。

これは自分で適当な名前にすればOK。(※ただし重複することはできません)

 

とまぁここまでは良かったのですが、ここからが問題でした

フォントカラー変更、塗りつぶし色変更のコントロールが移植できない

先ほど、ご紹介したサイトからダウンロードした組み込みのコントロールのID一覧には、コントロールの種類まで記載があったので、それにしたがってフォントカラー変更、塗りつぶし変更のコントロールを移植しようとしたのですが、うまくいきません。

これも予約されているIDを使用しています。

どうもこの記述方法だと、書き方が悪いのか、コントロールがうまく表示されません。

塗りつぶしがうまくいかない例

一見うまくいっているように見えますが。。

塗りつぶしがうまくいかない例-02

 

塗りつぶしがうまくいかない例-03

塗りつぶしがうまくいかない例-04

良く見ると、右側の▼のところと、色のところで2つ押せるようになっていて、▼をクリックするとテーマの色、標準の色がずるっと出てきます。

上手くいっていない方は、ボタンが2つに分かれず、テーマの色、標準の色の設定しか出てきません。

解決方法

解決方法は、ちょっとこれでいいのか?ですが、結果的にはうまくいっているようなので、今のところその解決方法で問題を回避しています。

で、具体的な方法は、リボンXMLのほうの記述を下記のようにすればうまくいきました。

gallery要素ではなく、control要素を使用すればいいようです。

control要素で記述することで、もともとある塗りつぶしの機能が全て使用可能となります。

 

今のところ、comboboxやbuttonはそのままのコントロールでうまくいくようです。

上手くいかないのはgallery要素かな。

 

組み込みの機能の移植をされる方は、参考にしていただけると幸いです。

 

 

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です