以PushButton为例,网上的案例都是Uri引用本地图片,现将图片加载至Resources并调用。
关键语句:Uri uri = new Uri("pack://application:,,,/程序集名称;component/Resources/bj.png", UriKind.Absolute);
[Regeneration(RegenerationOption.Manual)] [Journaling(JournalingMode.NoCommandData)] public class Ribbon : IExternalApplication { Image image = Res.One_16; public Result OnShutdown(UIControlledApplication application) { return Result.Succeeded; } public Result OnStartup(UIControlledApplication application) { application.CreateRibbonTab("无名氏制作"); RibbonPanel panel = application.CreateRibbonPanel("无名氏制作", "管道避让"); string assemblyName = string.Empty;//不可替用 //创建一个SplitButton SplitButtonData splitButtonData = new SplitButtonData("管道避让", "单边避让"); SplitButton splitButton = panel.AddItem(splitButtonData) as SplitButton; //创建一个pushButton加到SplitButton的下拉列表里 PushButton pushButton = splitButton.AddPushButton(new PushButtonData("AvoidMepCurve.OnesideCommand", "单边避让", @"F:\Practice\AvoidMepCurve\AvoidMepCurve\bin\Debug\AvoidMepCurve.dll", "AvoidMepCurve.OnesideCommand")); //@"F:\Practice\AvoidMepCurve\AvoidMepCurve\bin\Debug\AvoidMepCurve.dll" //本地文件,添加图片 //Uri largeImage = new Uri(@"F:\Practice\AvoidMepCurve\AvoidMepCurve\ImageBox\One_32.png"); //Uri image = new Uri(@"F:\Practice\AvoidMepCurve\AvoidMepCurve\ImageBox\One_16.png"); //pushButton.LargeImage = new BitmapImage(largeImage); //pushButton.Image = new BitmapImage(image); //Resources添加图片 Uri largeImage = new Uri("pack://application:,,,/AvoidMepCurve;component/Resources/One_32.png", UriKind.Absolute); Uri image = new Uri("pack://application:,,,/AvoidMepCurve;component/Resources/One_16.png", UriKind.Absolute); pushButton.LargeImage = new BitmapImage(largeImage); pushButton.Image = new BitmapImage(image); pushButton.ToolTip = "为一端未连接的管道进行翻弯"; return Result.Succeeded; } }
参考文章:(点击打开)
图片添加至Resources:
Ribbon的制作参考:
Revit 2011 二次开发之Ribbon
xaml.cs中改写Uri参考: