我的解决方案的结构是:
CI.Frontier.Classic包含一个MEF模块。我的应用程序使用RibbonWindow控件,模块定义应创建哪些菜单项。我可以从CI.Frontier.Classic模块成功地向功能区控件添加一个按钮,但是,我无法找出适当的Uri到ClassicFrontierToopTip.png
继承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还是应该使用某种“打包uri”?
答案 0 :(得分:3)
强有力的方法是利用pack syntax ......
new Uri("pack://application:,,,/CI.Frontier.Classic;component/Graphics/ClassicFrontierToolTip.png", UriKind.Absolute);
答案 1 :(得分:0)
Include an icon for a Prism module解决了它......
ToolTipImage = new Uri("/" + GetType().Assembly.ToString().Split(',')[0] + ";component/Graphics/ClassicFrontierToolTip.png", UriKind.Relative)
不确定这是否是最佳解决方案。