winform 清除图形 powershell
winform clear graphic powershell
我正在尝试找出一种从 windows 表单图形中清除图形的方法。我看过一些使用 Graphics.clear() 调出的 C# 示例,但我似乎无法弄清楚我在这里做错了什么。我什至尝试使用 $form.visiblity 这似乎确实重置了图形,但是当我 运行 它在一个循环中(绘制多条线)时它创建了一个全新的形式 window 不'关闭。这是我正在尝试做的示例:
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
# Create a Form
$form = New-Object System.Windows.Forms.Form
$form.Size = New-Object System.Drawing.Size(600,600)
$form.text = "Line Draw Test"
# Get the form's graphics object
$formGraphics = $form.createGraphics()
function New-LineFromOrigin {
Param ($form)
$width = $form.Width
$height = $form.Height
$greenBrush = new-object Drawing.SolidBrush ("green")
$formGraphics.FillEllipse($greenBrush, $width/2, $height/2, 5, 5 ) # draw an ellipse using rectangle object
$formGraphics.DrawLine($greenBrush, $width/2, $height/2, 0, 0 ) # draw an ellipse using rectangle object
}
$Button = New-Object System.Windows.Forms.Button
$Button.Location = New-Object System.Drawing.Size(30,30)
$Button.Size = New-Object System.Drawing.Size(90,40)
$Button.Text = "Draw line"
$Button.Add_Click(
{New-LineFromOrigin -form $form}
)
$form.Controls.Add($Button)
$Button2 = New-Object System.Windows.Forms.Button
$Button2.Location = New-Object System.Drawing.Size(200,30)
$Button2.Size = New-Object System.Drawing.Size(90,40)
$Button2.Text = "Clear"
$Button2.Add_Click(
{$form.graphics.clear()}
)
$form.Controls.Add($Button2)
$form.Add_Shown({$form.Activate()})
[void] $form.ShowDialog()
有几种方法可以清除图形。
使表格无效
$form.Invalidate()
清除图形并重置颜色
# Clear with a new color on the background
$formGraphics.Clear([System.Drawing.Color]::White)
# Or clear with the form's current background color
$formGraphics.Clear($form.BackColor)
请记住,您实际上 clearing/deleting 什么都不是;只是在替换现有 graphic/drawing.
的表格上重新绘制一些东西
我正在尝试找出一种从 windows 表单图形中清除图形的方法。我看过一些使用 Graphics.clear() 调出的 C# 示例,但我似乎无法弄清楚我在这里做错了什么。我什至尝试使用 $form.visiblity 这似乎确实重置了图形,但是当我 运行 它在一个循环中(绘制多条线)时它创建了一个全新的形式 window 不'关闭。这是我正在尝试做的示例:
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
# Create a Form
$form = New-Object System.Windows.Forms.Form
$form.Size = New-Object System.Drawing.Size(600,600)
$form.text = "Line Draw Test"
# Get the form's graphics object
$formGraphics = $form.createGraphics()
function New-LineFromOrigin {
Param ($form)
$width = $form.Width
$height = $form.Height
$greenBrush = new-object Drawing.SolidBrush ("green")
$formGraphics.FillEllipse($greenBrush, $width/2, $height/2, 5, 5 ) # draw an ellipse using rectangle object
$formGraphics.DrawLine($greenBrush, $width/2, $height/2, 0, 0 ) # draw an ellipse using rectangle object
}
$Button = New-Object System.Windows.Forms.Button
$Button.Location = New-Object System.Drawing.Size(30,30)
$Button.Size = New-Object System.Drawing.Size(90,40)
$Button.Text = "Draw line"
$Button.Add_Click(
{New-LineFromOrigin -form $form}
)
$form.Controls.Add($Button)
$Button2 = New-Object System.Windows.Forms.Button
$Button2.Location = New-Object System.Drawing.Size(200,30)
$Button2.Size = New-Object System.Drawing.Size(90,40)
$Button2.Text = "Clear"
$Button2.Add_Click(
{$form.graphics.clear()}
)
$form.Controls.Add($Button2)
$form.Add_Shown({$form.Activate()})
[void] $form.ShowDialog()
有几种方法可以清除图形。
使表格无效
$form.Invalidate()
清除图形并重置颜色
# Clear with a new color on the background
$formGraphics.Clear([System.Drawing.Color]::White)
# Or clear with the form's current background color
$formGraphics.Clear($form.BackColor)
请记住,您实际上 clearing/deleting 什么都不是;只是在替换现有 graphic/drawing.
的表格上重新绘制一些东西