2010-12-06 2 views
0

У меня есть что-то вроде этого:Как нарисовать System.Drawing.Icon для SplitterPanel?

var systemIcon = SystemIcons.Information; 
verticalSplitPanel.SplitterDistance = systemIcon.Width; 

var g = verticalSplitPanel.Panel1.CreateGraphics(); 
g.DrawIcon(systemIcon, 0, 0); 

компилируется и выполняется без ошибок, но по какой-то причине значок не отображается.

Я также попытался это:

var systemIcon = SystemIcons.Information; 
verticalSplitPanel.SplitterDistance = systemIcon.Width; 

var g = verticalSplitPanel.Panel1.CreateGraphics(); 
g.DrawImage(systemIcon.ToBitmap(), 0, 0); 

Опять он компилирует и работает без ошибок, но не отображается значок.

Как я могу отобразить этот значок?

ответ

1

Ваш код может нарисовать значок поверх поверхности панели, но он будет очищен, когда панель решит перекрасить себя. Вместо того, чтобы использовать объект Graphics с verticalSplitPanel.Panel1.CreateGraphics(), вы должны обработать событие Paint панели управления и использовать объект Graphics, предоставленный в этом случае args.

Попробуйте это:

verticalSplitPanel.Panel1.Paint += (s, eargs) => 
    { 
     var icon = SystemIcons.Information; 
     eargs.Graphics.DrawIcon(icon, 0, 0); 
    }; 
Смежные вопросы