Completed
Last Updated: 17 Jun 2014 08:28 by ADMIN
ADMIN
Ivan Todorov
Created on: 20 Mar 2014 11:07
Category: CommandBar
Type: Bug Report
0
FIX. RadCommandBar - the images of command bar items are not updated after changing the ImageList property
When you change the ImageList property of RadCommandBar at runtime, the images of the items are not updated. In addition, if there are items in the overflow popup, their image is reset to default. 

WORKAROUND:
You need to reset each item's ImageIndex property in order for the new image to appear and you also need to update the ImageList property of the overflow popups manually. 

private void radCheckBox1_ToggleStateChanged(object sender, StateChangedEventArgs args)
{
	radCommandBar1.ImageList = radCheckBox1.Checked ? imageList32 : imageList16;
	ToggleImageIndices();
}

private void ToggleImageIndices()
{
	foreach (var row in radCommandBar1.Rows)
	{
		foreach (var strip in row.Strips)
		{
			((RadControl)strip.OverflowButton.OverflowPanel.Layout.ElementTree.Control).ImageList = radCommandBar1.ImageList;
			foreach (var item in strip.Items)
			{
				int oldIndex = item.ImageIndex;
				item.ImageIndex = -1;
				item.ImageIndex = oldIndex;
			}
			foreach (var item in strip.OverflowButton.OverflowPanel.Layout.Children.OfType<RadCommandBarBaseItem>())
			{
				int oldIndex = item.ImageIndex;
				item.ImageIndex = -1;
				item.ImageIndex = oldIndex;
			}
		}
	}
}
0 comments