public StackPanel LoopItemlist(ObservableCollection <RibbonItemCustom> ItemData, int start, int end) { StackPanel stackpanel = new StackPanel() { Orientation = Orientation.Horizontal }; for (int i = start; i < end; i++) { String Id = ItemData[i].Id; String ToolTip = ItemData[i].ToolTip; String text = ItemData[i].Text; String ImagePath = ItemData[i].ImagePath; Boolean ExternalImage = ItemData[i].ExternalImage; Boolean IsVisible = ItemData[i].IsVisible; Boolean IsInitialized = ItemData[i].IsInitialized; String Image = ItemData[i].Image; String LargeImage = ItemData[i].LargeImage; int width = ItemData[i].Width; int height = ItemData[i].Height; Boolean IsEnabled = ItemData[i].IsEnabled; String Size = ItemData[i].Size; ButtonSize size; switch (Size) { case "Small": size = ButtonSize.Small; break; case "Large": size = ButtonSize.Large; break; default: size = ButtonSize.Medium; break; } String Type = ItemData[i].ItemType; Boolean IsAutoSize = ItemData[i].ExternalImage; Image image = new Image(); try { image.Source = new BitmapImage(new Uri(binDebug + PathImage + ItemData[i].Image)); } catch { } Image largeImage = new Image(); try { largeImage.Source = new BitmapImage(new Uri(binDebug + PathImage + ItemData[i].Image)); } catch { } switch (ItemData[i].ItemType) { case "Button": stackpanel.Children.Add( new RadRibbonButton() { CollapseToSmall = CollapseThreshold.WhenGroupIsMedium, SmallImage = image.Source, LargeImage = largeImage.Source, Size = size, Text = text, } ); break; case "SplitButton": RadRibbonSplitButton splitButton = new RadRibbonSplitButton { Size = size, Text = text, LargeImage = largeImage.Source, SmallImage = image.Source, VerticalAlignment = VerticalAlignment.Top, }; RadContextMenu contextMenu = new RadContextMenu(); RadMenuItem Item = new RadMenuItem() { Icon = image.Source, Header = text }; contextMenu.Items.Add(Item); splitButton.DropDownContent = contextMenu; stackpanel.Children.Add(splitButton); break; case "ToggleButton": stackpanel.Children.Add(new RadRibbonToggleButton() { Content = text, LargeImage = largeImage.Source, Size = size, VerticalAlignment = VerticalAlignment.Top }); break; case "DropDownButton": StackPanel stack = new StackPanel() { Orientation = Orientation.Vertical }; Label Text = new Label() { Content = ItemData[i].Text }; ComboBox ComboBox = new ComboBox(); stack.Children.Add(Text); stack.Children.Add(ComboBox); stackpanel.Children.Add(stack); break; } } return(stackpanel); }
public static void ConverToTelerik(ObservableCollection <RibbonItemCustom> ItemsCustom) { ObservableCollection <object> temp = new ObservableCollection <object>(); foreach (RibbonItemCustom itemCustom in ItemsCustom) { RibbonControl control = ComponentManager.Ribbon; String Id = itemCustom.Id; String ToolTip = itemCustom.ToolTip; String text = itemCustom.Text; String ImagePath = itemCustom.ImagePath; Boolean ExternalImage = itemCustom.ExternalImage; Boolean IsVisible = itemCustom.IsVisible; Boolean IsInitialized = itemCustom.IsInitialized; String Image = itemCustom.Image; String LargeImage = itemCustom.LargeImage; int width = itemCustom.Width; int height = itemCustom.Height; Boolean IsEnabled = itemCustom.IsEnabled; String Size = itemCustom.Size; ButtonSize size; switch (Size) { case "Small": size = ButtonSize.Small; break; case "Large": size = ButtonSize.Large; break; default: size = ButtonSize.Medium; break; } String Type = itemCustom.ItemType; Boolean IsAutoSize = itemCustom.ExternalImage; Image image = new Image(); try { image.Source = new BitmapImage(new Uri(binDebug + PathImage + itemCustom.Image)); } catch { } switch (Type) { case "Button": temp.Add(new RadRibbonButton()); break; case "SplitButton": RadRibbonSplitButton splitButton = new RadRibbonSplitButton { Size = size, Text = text, LargeImage = image.Source, SmallImage = image.Source, Width = width, Height = height, VerticalAlignment = VerticalAlignment.Top }; RadContextMenu contextMenu = new RadContextMenu(); RadMenuItem Item = new RadMenuItem() { Icon = image.Source, Header = text }; contextMenu.Items.Add(Item); splitButton.DropDownContent = contextMenu; temp.Add(splitButton); break; case "ToggleButton": temp.Add(new RadRibbonToggleButton() { Content = text, LargeImage = image.Source, Size = size, Width = width, Height = height, VerticalAlignment = VerticalAlignment.Top }); break; case "DropDownButton": StackPanel stack = new StackPanel() { Orientation = Orientation.Horizontal }; Label Text = new Label() { Content = itemCustom.Text }; ComboBox ComboBox = new ComboBox(); stack.Children.Add(Text); stack.Children.Add(ComboBox); temp.Add(stack); break; } } StackPanel row1 = new StackPanel(); for (int i = 0; i < temp.Count / 2; i++) { string Type = temp[i].GetType().Name; switch (Type) { case "Button": row1.Children.Add((RadRibbonButton)temp[i]); break; case "SplitButton": row1.Children.Add((RadRibbonSplitButton)temp[i]); break; case "ToggleButton": row1.Children.Add((RadRibbonToggleButton)temp[i]); break; case "DropDownButton": //row1.Children.Add((RadRibbonButton)temp[i]); break; } } StackPanel row2 = new StackPanel(); RadControl = temp; }