Эксперименты с Winforms в Powershell.
Я создаю Winform, на котором я рисую с помощью System.Drawing. После окончания рисования мне нужно сохранить его состояние, чтобы позже к нему вернуться.
В приведенном ниже примере я хочу вернуться в состояние с одной нарисованной линией (= перед рисованием прямоугольника). Где ошибка?
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
[System.Windows.Forms.Application]::EnableVisualStyles()
cd $PSScriptRoot
$Form = new-Object system.Windows.Forms.Form
$size = 150
$Form.ClientSize = "$size,$size"
$graphics = $Form.CreateGraphics()
$pen = New-Object System.Drawing.pen Black, 25
$brush = New-Object System.Drawing.SolidBrush Green
$form.Add_Paint(
{
$graphics.DrawLine($pen, 0,0,100,100)
# Save graphics state.
$state = $graphics.Save()
$graphics.FillRectangle($brush, 0, 0, 100, 100)
# Restore graphics state.
$graphics = $graphics.Restore($state)
}
)
$Form.ShowDialog()