59 lines
1.2 KiB
C#
59 lines
1.2 KiB
C#
using System.Drawing;
|
|
using JD.Kernel.StaticHelpers;
|
|
|
|
namespace JD.WinFormExtensions
|
|
{
|
|
public sealed class ImageOrIcon
|
|
{
|
|
private Bitmap m_bitmap;
|
|
private Icon m_icon;
|
|
|
|
public ImageOrIcon(Bitmap bitmap)
|
|
{
|
|
Throw.IfNull(bitmap, "bitmap");
|
|
m_bitmap = bitmap;
|
|
}
|
|
|
|
public ImageOrIcon(Icon icon)
|
|
{
|
|
Throw.IfNull(icon, "icon");
|
|
m_icon = icon;
|
|
}
|
|
|
|
public Bitmap Bitmap
|
|
{
|
|
get
|
|
{
|
|
if (m_bitmap == null)
|
|
{
|
|
m_bitmap = m_icon.ToBitmap();
|
|
}
|
|
|
|
return m_bitmap;
|
|
}
|
|
}
|
|
|
|
public Icon Icon
|
|
{
|
|
get
|
|
{
|
|
if (m_icon == null)
|
|
{
|
|
m_icon = Icon.FromHandle(m_bitmap.GetHicon());
|
|
}
|
|
|
|
return m_icon;
|
|
}
|
|
}
|
|
|
|
public static implicit operator ImageOrIcon(Bitmap bitmap)
|
|
{
|
|
return new ImageOrIcon(bitmap);
|
|
}
|
|
|
|
public static implicit operator ImageOrIcon(Icon icon)
|
|
{
|
|
return new ImageOrIcon(icon);
|
|
}
|
|
}
|
|
}
|