1

我的解决方案的结构是:

在此处输入图像描述

CI.Frontier.Classic 包含一个 MEF 模块。我的应用程序使用 RibbonWindow 控件,并且模块定义了应该创建的菜单项。我可以从 CI.Frontier.Classic 模块成功地将按钮添加到功能区控件,但是,我无法确定 ClassicFrontierToopTip.png 的正确 Uri

这是 FrontierClassic.cs 中创建选项卡、按钮并尝试设置功能区 ToolTipImage 的代码

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 还是应该使用某种“pack uri”?

4

2 回答 2

3

稳健的方法是利用pack 语法......

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

包括一个棱镜模块的图标 解决了它......

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

不确定这是否是最好的解决方案。

于 2011-02-10T15:24:41.813 回答