현재 C# 응용 프로그램을 개발 중입니다. 내 자신의 맞춤 메시지 상자를 만들어서 라벨에 표준 시스템 아이콘 (예 : 표준 MessageBox에서 볼 수있는 아이콘 중 하나)을 할당 할 수 있는지 궁금합니다.레이블에 시스템 아이콘 지정
이 문제에 대한 도움을 주시면 감사하겠습니다.
감사
현재 C# 응용 프로그램을 개발 중입니다. 내 자신의 맞춤 메시지 상자를 만들어서 라벨에 표준 시스템 아이콘 (예 : 표준 MessageBox에서 볼 수있는 아이콘 중 하나)을 할당 할 수 있는지 궁금합니다.레이블에 시스템 아이콘 지정
이 문제에 대한 도움을 주시면 감사하겠습니다.
감사
당신은 System.Drawing 및 System.Windows.Forms와 상호 운용 할 수
System.Drawing.Icon icon = System.Drawing.SystemIcons.Warning;
BitmapSource bs = System.Windows.Interop.Imaging.CreateBitmapSourceFromHIcon(icon.Handle, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
image1.Source = bs;
SLaks '솔루션은 아마 갈 수있는 가장 쉬운 방법입니다. 경우, 어떤 이유로, 당신은 자신을 구현하기 매우 쉽게, 윈도우 기능을 양식 사용하지 않습니다
public enum SystemIcons
{
Application = 32512,
Error = 32513,
Hand = Error,
Question = 32514,
Warning = 32515,
Exclamation = Warning,
Information = 32516,
Asterisk = Information,
WinLogo = 32517,
Shield = 32518,
}
public static ImageSource LoadSystemIcon(SystemIcons iconId)
{
string iconName = "#" + ((int)iconId);
IntPtr hIcon = LoadIcon(IntPtr.Zero, iconName);
if (hIcon == IntPtr.Zero)
return null;
return System.Windows.Interop.Imaging.CreateBitmapSourceFromHIcon(
hIcon, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
}
[DllImport("user32.dll")]
static extern IntPtr LoadIcon(IntPtr hInstance, string lpIconName);
System.Drawing.Icon myIcon = new System.Drawing.Icon(System.Drawing.SystemIcons.Question,32,32);
label.Image = myIcon.ToBitmap();
좋은 제안을. "image1.Source should = bs"는 아마도 "this.Icon = bs"일 것입니다. –
Doh! 나는이 SystemIcon 클래스를 결코 알아 채지 못했습니다 ... 그래서 직접 구현했습니다. 나는 바퀴를 다시 발명 한 것을 깨닫기가 싫다 ... –