Message 1 of 3
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hello, i am trying to change the icon of a ribbon button at runtime, even tho it works, it tries to display the icon as a 32x32 instead of 16x16, button is created via cui editor and set to SmallWithText, and icon is set from a function called from a command like following:
var ribbon = ComponentManager.Ribbon; var togglePipingModeButton = ribbon?.FindItem("TogglePipingModeButton", false) as RibbonButton; var isDarkTheme = Application.GetSystemVariable("COLORTHEME").ToString() == "0"; var imageName = PipCmnApp.PipingCommonSettings.AdvancedPipingMode ? (isDarkTheme ? "advancedpipingmode_dark" : "advancedpipingmode_light") : (isDarkTheme ? "simplepipingmode_dark" : "simplepipingmode_light"); var uri = new Uri($"pack://application:,,,/PipCmn;component/Resources/ribbon/{imageName}.ico", UriKind.Absolute); togglePipingModeButton.Size = RibbonItemSize.Standard; var image = new BitmapImage(uri); togglePipingModeButton.Image = image; togglePipingModeButton.Text = PipCmnApp.PipingCommonSettings.AdvancedPipingMode ? "Modalità Avanzata" : "Modalità Semplificata";
this does indeed change the icon as said before, but as said, only shows the top-left "quadrant" of the 32x icon instead of scaling it to 16x
tried this with both 16x png and 32x png and had the same result, tried switching to ico but nothing changed.
Solved! Go to Solution.