using DevExpress.XtraEditors;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
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;
}
}
}