使用XtraTabbedMdiManager控件管理Mdi里面的窗体后,发现背景图片不能显示,
重写DevExpress.XtraTabbedMdi.XtraTabbedMdiManager的DrawNC方法就行了。
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.ComponentModel;
namespace MdiForm
{
public class TabbedMdiManager : DevExpress.XtraTabbedMdi.XtraTabbedMdiManager
{
Image _backImage = null;
public TabbedMdiManager(): base()
{
}
public TabbedMdiManager(IContainer container) : base(container)
{
}
public Image BackImage
{
set { _backImage = value; }
get { return _backImage; }
}
protected override void DrawNC(DevExpress.Utils.Drawing.DXPaintEventArgs e)
{
if (this.Pages.Count > 0 || _backImage == null)
{
base.DrawNC(e);
}
else
{
e.Graphics.DrawImage(_backImage, Bounds);
}
}
}
}
在MdiForm中:
public FrmMian()
{
// Required for Windows Form Designer support
InitializeComponent();
// TODO: Add any constructor code after InitializeComponent call
InitTabbedMdiManager();
}
public void InitTabbedMdiManager()
{
TabbedMdiManager TabbedMdiManager1 = new TabbedMdiManager();
TabbedMdiManager1.MdiParent = this;
TabbedMdiManager1.BackImage = MdiForm.Properties.Resources.BackgroundImage;
}
如果没有使用XtraTabbedMdiManager控件,在构造函数中添加:
public FrmMian()
{
// Required for Windows Form Designer support
InitializeComponent();
foreach (Control var in this.Controls)
{
if (var is MdiClient)
{
var.BackgroundImage = MdiForm.Properties.Resources.BackgroundImage;
var.BackgroundImageLayout = ImageLayout.Stretch;
break;
}
}
}