メインコンテンツまでスキップ

リボンを拡張する

エクステンションでNext Designのアプリケーションのリボンを拡張することができます。例えば以下のようなことが可能です。

  • 新しいリボンタブを追加して、ボタンを配置する
  • 既存のリボンタブのボタンを非表示にする

リボンを定義するには拡張ポイントを定義する必要があります。

マニフェストファイルでリボンを定義する

通常は次のようにマニフェストファイル(manifest.json)を用いてリボンとコマンドを定義し、コマンドハンドラを実装します。

manifest.json
{
// エクステンション定義
"name": "SampleExtension",
"main": "SampleExtension.dll",
"lifecycle": "application",

// 拡張ポイント定義
"extensionPoints": {
// リボン
"ribbon": {
"tabs": [
// リボンタブ
{
"id": "HelloWorld.MainTab",
"label": "HelloWorld",
"orderBefore": "System.View",
"groups": [
// リボンタブ内のグループ
{
"id": "HelloWorld.FirstGroup",
"label": "グループ1",
"controls": [
// ボタン
{
"id": "HelloWorld.SayHelloButton",
"type": "Button",
"label": "Say Hello",
"imageLarge": "images/About.png",
"command": "Command.SayHello"
}
]
}
]
}
]
},

// コマンド
"commands": [
{
"id": "Command.SayHello",
"execFunc": "SayHello"
}
]
}
}

コマンドハンドラは次のように実装します。

public class SampleExtensionEntryPoint : IExtension
{
//...

// コマンドハンドラ
public void SayHello(ICommandContext c, ICommandParams p)
{
c.App.Window.UI.ShowInformationDialog("Hello !", "Hello World");
}

}

ExtensionPointsライブラリでリボンを定義する

ExtensionPointsライブラリを利用することで、マニフェストファイルでのリボンの定義の必要がなくなり、リボンの定義がコードで非常にシンプルに定義できるようになります。

public class SampleExtensionEntryPoint : ExtensionBase
{
protected override void OnActivate()
{
// リボン
var tab = ExtensionPoints.Ribbon.AddTab("SampleExPoint");
var group = tab.AddGroup("Test1");
group.AddLargeButton<HelloCommand>("こんにちは");
}
}

詳しくは ExtensionPoints > リボンの定義を参照して下さい。