namespace Yw.WinFrmUI { /// /// TilePeekItem拓展 /// public static class TilePeekItemsExtensions { /// /// 创建弹出面板 /// /// /// /// public static Control CreatePeekCtrl(this List items, Action dele) { var tc = new TileControl(); tc.SetForPeek(); var group = new DevExpress.XtraEditors.TileGroup(); tc.Groups.Add(group); tc.BeginUpdate(); items.ForEach(x => { TileItem item = new TileItem(); item.Text = x.Caption; item.ImageScaleMode = TileItemImageScaleMode.Default; item.ImageToTextAlignment = TileControlImageToTextAlignment.Left; item.ImageAlignment = TileItemContentAlignment.MiddleLeft; item.ImageToTextIndent = 15; item.ImageOptions.Image = x.Image; item.ImageOptions.SvgImage = x.SvgImage; item.ImageOptions.SvgImageSize = x.SvgImageSize; item.ItemClick += delegate { dele(x); }; item.Enabled = x.Enable; x.EnableChangedEvent += bol => item.Enabled = bol; item.Tag = x.Tag; group.Items.Add(item); }); tc.EndUpdate(); tc.Size = new Size(tc.OptionsAdaptiveLayout.ItemMinSize.Width, group.Items.Count * tc.OptionsAdaptiveLayout.ItemMinSize.Height); return tc; } /// /// 创建弹出面板 /// /// /// public static Control CreatePeekCtrl(this List items) { var tc = new TileControl(); tc.SetForPeek(); var group = new DevExpress.XtraEditors.TileGroup(); tc.Groups.Add(group); tc.BeginUpdate(); foreach (var peekItem in items) { if (!peekItem.Visibility) { continue; } var item = new TileItem(); item.Text = peekItem.Caption; item.ImageScaleMode = TileItemImageScaleMode.Default; item.ImageToTextAlignment = TileControlImageToTextAlignment.Left; item.ImageAlignment = TileItemContentAlignment.MiddleLeft; item.ImageToTextIndent = 15; item.ImageOptions.Image = peekItem.Image; item.ImageOptions.SvgImage = peekItem.SvgImage; item.ImageOptions.SvgImageSize = peekItem.SvgImageSize; item.ItemClick += delegate { if (peekItem.Click != null) peekItem.Click(); }; item.Enabled = peekItem.Enable; peekItem.EnableChangedEvent += bol => item.Enabled = bol; item.Tag = peekItem.Tag; group.Items.Add(item); } tc.EndUpdate(); tc.Size = new Size(tc.OptionsAdaptiveLayout.ItemMinSize.Width, group.Items.Count * tc.OptionsAdaptiveLayout.ItemMinSize.Height); return tc; } } }