Visual Studio 2010의 .NET 4.0 Winforms 응용 프로그램에서 단추 만 만들려고합니다. 나는 국경없는 창을 가지고 있으며,이 응용 프로그램에 대한 내 사용자 정의 스킨을 만드는 배경 이미지가 있습니다. 창의 오른쪽 상단에있는 닫기/최소화 단추의 경우 일반 Windows 닫기/최소화 단추처럼 보이는 이미지 인 2 개의 간단한 단추를 만들려고했습니다..NET Winforms 응용 프로그램에서 이미지 단추 만들기
나는이 디자인이 잘못 될 수 있으므로, 알려 주시면 알려주세요. 지금까지 이미지만을 렌더링하는 Button의 하위 클래스를 만들어야한다고 결정했습니다. 최종 구현에서는 각 버튼 상태 (정상, 마우스 오버, 클릭 등)마다 서로 다른 이미지를 렌더링해야합니다. 여기에 지금까지 무엇을 가지고 :
public class ImageButton : Button
{
Pen pen = new Pen(Color.Red, 1.0f);
public ImageButton()
{
SetClientSizeCore(BackgroundImage.Width, BackgroundImage.Height);
}
protected override void OnPaint(PaintEventArgs e)
{
e.Graphics.DrawImage(BackgroundImage, 0, 0);
//e.Graphics.DrawRectangle(pen, ClientRectangle);
//Rectangle bounds = new Rectangle(0, 0, Width, Height);
//ButtonRenderer.DrawButton(e.Graphics, bounds, PushButtonState.Normal);
//base.OnPaint(pevent);
}
protected override void OnPaintBackground(PaintEventArgs e)
{
// Do nothing
}
}
이 시점에서,이 디자인이 적절한 가정, 나는 적절하게() SetClientSizeCore를 호출하는 방법을 알 필요가있다. 생성자에서 호출하면 예외가 발생합니다. 컨트롤이 아직 초기화 할 기회가 없었기 때문에 이것이라고 가정합니다. 어떤 기능을 재정의해야할지 모르겠다. .NET에서 초기화 한 후에 이미지 크기에 맞춰 버튼의 크기를 변경할 수 있습니다. 이것에 대한 아이디어가 있습니까?
방금이 시도를 시도했지만 더 간단한 해결 방법은 Click 이벤트가있어서 PictureBox 컨트롤을 사용하는 것이고 특히 필요한 것은 없었습니다. 단추 개체에서. – Ted