1

私のソリューションの構造は次のとおりです。

ここに画像の説明を入力してください

CI.Frontier.ClassicにはMEFモジュールが含まれています。私のアプリケーションはRibbonWindowコントロールを使用しており、モジュールは作成するメニュー項目を定義します。CI.Frontier.Classicモジュールからリボンコントロールにボタンを正常に追加できますが、ClassicFrontierToopTip.pngへの適切なURIがわかりません。

タブ、ボタンを作成し、リボンToolTipImageを設定しようとするFrontierClassic.csのコードを次に示します。

public void CreateMenuItems()
{
    TabData tabData = new TabData("Legacy");

    GroupData groupData = new GroupData("Internal");
    tabData.GroupDataCollection.Add(groupData);

    ButtonData classicFrontierBtn = new ButtonData()
    {
        Label = "Classic Frontier",
        ToolTipTitle = "Classic Frontier",
        ToolTipDescription = "Open Classic Frontier",
        ToolTipImage = new Uri("./Graphics/ClassicFrontierToolTip.png", UriKind.Relative)
    };
    classicFrontierBtn.Command.RegisterCommand(new DelegateCommand(LoadFrontierView));


    groupData.ControlDataCollection.Add(classicFrontierBtn);

    _ribbonService.AddTab(tabData);
}

ツールチップが表示されないため、このURIは機能しません。UriKind.Relativeを使用できますか、それともある種の「パックURI」を使用する必要がありますか?

4

2 に答える 2

3

堅牢なアプローチは、パック構文を活用することです...

new Uri("pack://application:,,,/CI.Frontier.Classic;component/Graphics/ClassicFrontierToolTip.png", UriKind.Absolute);
于 2011-02-10T15:40:38.767 に答える
0

Prismモジュールのアイコンを含めると 解決しました...

ToolTipImage = new Uri("/" + GetType().Assembly.ToString().Split(',')[0] + ";component/Graphics/ClassicFrontierToolTip.png", UriKind.Relative)

ただし、これが最善の解決策であるかどうかはわかりません。

于 2011-02-10T15:24:41.813 に答える