using System;
using System.Drawing;
using System.Windows.Forms;
namespace Dongke.WinForm.Controls.InvoiceLayout
{
///
///
///
[Serializable]
public class ImageItem : LayoutItem
{
#region 成员变量
private string _fileName = string.Empty; // 图片文件的路径(全名)
private Image _image; // 图片
#endregion 成员变量
#region 属性
///
/// 获取或设置图片文件的路径(全名)
///
public string FileName
{
get
{
return _fileName;
}
set
{
if (string.IsNullOrEmpty(value))
{
value = string.Empty;
}
if (!value.Equals(_fileName))
{
_fileName = value;
if (Owner != null)
{
Owner.SetItemChangedArgs(this, ItemChangeType.Modified);
}
}
}
}
///
/// 获取或设置图片
///
public Image Image
{
get
{
return _image;
}
set
{
_image = value;
if (SimpleShape != null)
{
SimpleShape.BackgroundImageLayout = ImageLayout.Stretch;
SimpleShape.BackgroundImage = _image;
}
if (Owner != null)
{
Owner.SetItemChangedArgs(this, ItemChangeType.Modified);
}
}
}
#endregion 属性
#region 构造函数
///
/// 构造函数
///
internal ImageItem()
: this(null)
{
}
///
/// 构造函数
///
/// Layoutbox
internal ImageItem(LayoutBox box)
: base(box, ItemType.Image)
{
_width = LayoutConsts.SHAPE_ITEM_SIZE_DEFAULT_WIDTH;
_height = LayoutConsts.SHAPE_ITEM_SIZE_DEFAULT_HEIGHT;
if (box != null)
{
if (_simpleShape != null)
{
_simpleShape.BackgroundImageLayout = ImageLayout.Stretch;
_simpleShape.BackgroundImage = _image;
}
}
}
#endregion 构造函数
#region 函数
///
/// 显示Item属性设置画面
///
///
/// DialogResult.OK:选中的Item有效,设置成功
/// DialogResult.Cancel:选中的Item有效,取消设置
/// DialogResult.None:LayoutBox不是编辑模式,或选中的Item不是一个
///
protected override DialogResult ShowItemPropertyDialogInner()
{
using (ImageItemSetting itemPropertySetting = new ImageItemSetting())
{
itemPropertySetting.ImageLocationX = Left;
itemPropertySetting.ImageLocationY = Top;
itemPropertySetting.ImageWidth = Width;
itemPropertySetting.ImageHeight = Height;
itemPropertySetting.SideRatioFixed = SideRatioFixed;
itemPropertySetting.FileName = FileName;
itemPropertySetting.Image = Image;
DialogResult result = itemPropertySetting.ShowDialog();
if (result == DialogResult.OK)
{
Left = itemPropertySetting.ImageLocationX;
Top = itemPropertySetting.ImageLocationY;
Width = itemPropertySetting.ImageWidth;
Height = itemPropertySetting.ImageHeight;
SideRatioFixed = itemPropertySetting.SideRatioFixed;
ResetItemFrame();
SetDrawProperty();
Owner.Dirty = true;
}
return result;
}
}
///
/// Item初始化
///
/// LayoutBox
/// 是否生成新ID
/// 是否成功
internal override bool Init(LayoutBox box, bool isNewID)
{
bool isInit = base.Init(box, isNewID);
if (isInit)
{
if (_simpleShape != null)
{
_simpleShape.BackgroundImageLayout = ImageLayout.Stretch;
_simpleShape.BackgroundImage = _image;
}
}
return isInit;
}
#endregion 函数
}
}