2011-02-10 50 views
1

我的解決方案的結構是:棱鏡V4,MEF,WPF - 使用適當的URI模塊的圖形

enter image description here

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還是應該使用某種「pack uri」?

回答

3

強勁的辦法是充分利用pack syntax ...

new Uri("pack://application:,,,/CI.Frontier.Classic;component/Graphics/ClassicFrontierToolTip.png", UriKind.Absolute); 
0

Include an icon for a Prism module解決它......

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

不知道這是最好的解決辦法,但。