using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using DevExpress.XtraLayout;
using DevExpress.Utils;
namespace IStation.WinFrmUI
{
public partial class LayoutPeekCtrl : XtraUserControl
{
public LayoutPeekCtrl()
{
InitializeComponent();
}
private const int _itemHeight = 50;
///
/// 绑定项
///
///
public void SetBindingData(List items)
{
for (int i = 0; i < items.Count; i++)
{
var item = items[i];
var lab = CreateLabelControl(item);
LayoutItem(lab);
}
var empty = new DevExpress.XtraLayout.EmptySpaceItem();
empty.AllowHotTrack = false;
empty.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
empty.MinSize = new Size(1, 1);
empty.TextSize = new System.Drawing.Size(0, 0);
this.layoutControlGroup1.AddItem(empty);
this.Size = new Size(200, items.Count * _itemHeight + 2);
}
//创建LabelControl
private LabelControl CreateLabelControl(TilePeekItem item)
{
var lab = new LabelControl();
lab.AutoSizeMode = DevExpress.XtraEditors.LabelAutoSizeMode.None;
lab.AllowGlyphSkinning = DefaultBoolean.True;
lab.Padding = new Padding(15, 0, 0, 0);
lab.StyleController = this.layoutControl1;
lab.ImageAlignToText = DevExpress.XtraEditors.ImageAlignToText.LeftCenter;
lab.IndentBetweenImageAndText = 10;
lab.Appearance.Image = item.NormalImage;
lab.Text = item.Caption;
lab.Tag = item.Tag;
lab.Click += delegate
{
if (item.Click != null)
item.Click();
};
lab.Appearance.BackColor = Color.White;
lab.Appearance.ForeColor = Color.FromArgb(63, 63, 63);
lab.MouseHover += lab_MouseHover;
lab.MouseLeave += lab_MouseLeave;
return lab;
}
void lab_MouseLeave(object sender, EventArgs e)
{
var lab = sender as LabelControl;
lab.Appearance.BackColor = Color.White;
lab.Appearance.ForeColor = Color.FromArgb(63, 63, 63);
}
void lab_MouseHover(object sender, EventArgs e)
{
var lab = sender as LabelControl;
lab.Appearance.BackColor = Color.FromArgb(0, 122, 204);
lab.Appearance.ForeColor = Color.White;
}
//创建LayoutItem
private void LayoutItem(Control ctrl)
{
var layoutItem = this.layoutControlGroup1.AddItem();
layoutItem.Padding = new DevExpress.XtraLayout.Utils.Padding(0);
layoutItem.Control = ctrl;
layoutItem.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
layoutItem.TextSize = new System.Drawing.Size(0, 0);
layoutItem.TextToControlDistance = 0;
layoutItem.TextVisible = false;
layoutItem.MinSize = new Size(16, _itemHeight);
layoutItem.MaxSize = new Size(0, _itemHeight);
}
}
}