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;
|
|
/// <summary>
|
/// 绑定项
|
/// </summary>
|
/// <param name="items"></param>
|
public void SetBindingData(List<TilePeekItem> 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);
|
}
|
|
|
|
|
}
|
}
|