using DevExpress.XtraEditors;
|
using System;
|
using System.Collections.Generic;
|
using System.Drawing;
|
using System.Windows.Forms;
|
|
namespace HStation.WinFrmUI
|
{
|
public static class TilePeekItemsExtensions
|
{
|
/// <summary>
|
/// 创建弹出面板
|
/// </summary>
|
/// <param name="items"></param>
|
/// <param name="dele"></param>
|
/// <returns></returns>
|
public static Control CreatePeekCtrl(this List<TilePeekItem> items, Action<TilePeekItem> 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;
|
}
|
|
/// <summary>
|
/// 创建弹出面板
|
/// </summary>
|
/// <param name="items"></param>
|
public static Control CreatePeekCtrl(this List<TilePeekItem> items, int width, int height)
|
{
|
var tileCtrl = new TileControl();
|
tileCtrl.SetForPeek();
|
var group = new DevExpress.XtraEditors.TileGroup();
|
tileCtrl.Groups.Add(group);
|
tileCtrl.BeginUpdate();
|
foreach (var peekItem in items)
|
{
|
var item = new TileItem();
|
item.Text = peekItem.Caption;
|
item.AppearanceItem.Normal.ForeColor = Color.Black;
|
item.AppearanceItem.Disabled.ForeColor = Color.Black;
|
item.AppearanceItem.Hovered.ForeColor = Color.Black;
|
item.AppearanceItem.Pressed.ForeColor = Color.Black;
|
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);
|
}
|
tileCtrl.EndUpdate();
|
tileCtrl.Size = new Size(tileCtrl.OptionsAdaptiveLayout.ItemMinSize.Width, group.Items.Count * tileCtrl.OptionsAdaptiveLayout.ItemMinSize.Height);
|
return tileCtrl;
|
}
|
}
|
}
|