.NET 4.x Graphics & GraphicsState (восстановить состояние объекта) - C#
Формулировка задачи:
private void Form1_MouseLeave(object sender, EventArgs e)
{
g.Restore(gs); //Восстанавливаю состояние, но не удачно
}
Graphics g = null;
GraphicsState gs = null;
private void Form1_MouseEnter(object sender, EventArgs e)
{
g = Graphics.FromHwnd(((PictureBox)sender).Handle);
gs = Graphics.FromHwnd(((PictureBox)sender).Handle).Save(); //Сохраняю состояние
g.FillRectangle(new SolidBrush(Color.FromArgb(50, 50, 50, 50)), new Rectangle(new Point(0, 0), new Size(((PictureBox)sender).Width, ((PictureBox)sender).Height))); //Рисую
}
Ну что, никто не сталкивался с такой проблемой? Подскажите пожалуйста.
Решение задачи: «.NET 4.x Graphics & GraphicsState (восстановить состояние объекта)»
textual
Листинг программы
private void pictureBox1_MouseEnter ( object sender, EventArgs e ) {
using ( var g = Graphics.FromHwnd( ( sender as PictureBox ).Handle ) ) {
g.FillRectangle(
new SolidBrush( Color.FromArgb( 50, 50, 50, 50 ) ),
new Rectangle(
new Point( 0, 0 ),
new Size( this.Width, this.Height )
)
);
}
}
private void pictureBox1_MouseLeave ( object sender, EventArgs e ) {
( sender as PictureBox ).Invalidate();
}