如何始终以任何屏幕分辨率以GUI形式制作图片?

时间:2019-08-02 02:45:50

标签: powershell user-interface

无论分辨率大小如何,我都希望将照片的那2个始终放在中间。 我尝试了这段代码,这些图片正好在我的工作屏幕中间(1936年, 1056)。当我尝试使用其他分辨率不同的屏幕时,图片不在中央。 任何人都可以帮助我。

Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Application]::EnableVisualStyles()

$Form                            = New-Object system.Windows.Forms.Form
$Form.BackColor                  = "#fcfcfc"
$Form.TopMost                    = $false
$Form.WindowState                = 'Maximized'


$img = [System.Drawing.Image]::Fromfile(".\AT3.png")
$pictureBox = new-object Windows.Forms.PictureBox

$img2 = [System.Drawing.Image]::Fromfile(".\AT2.png")
$pictureBox2 = new-object Windows.Forms.PictureBox

$Panel1 = New-Object system.Windows.Forms.Panel


$Form.controls.AddRange(@($Panel1))
$Panel1.controls.AddRange(@($pictureBox2,$pictureBox))


[void]$Form.Show()


$Panel1.height                   = $Form.Height / 2
$Panel1.width                    = $Form.Width
$Panel1.Anchor                   = "None"
$Panel1.location                 = New-Object System.Drawing.Point(1,($Panel1.height/2))
$Panel1.BackColor                  = "#fcfcfc"

$pictureBox2.Location = New-Object System.Drawing.Point(($Panel1.width/2.5),($Panel1.height/2.5))
$pictureBox2.Width = $Form.Size.Width / 2
$pictureBox2.Height = $Form.Size.Height / 2
$pictureBox2.Image = $img2

$pictureBox.Location = New-Object System.Drawing.Point(($Panel1.width/2.8),($Panel1.height/9))
$pictureBox.Width = $Form.Size.Width / 0.5
$pictureBox.Height = $Form.Size.Height / 0.5
$pictureBox.Image = $img

Write-Host $Form.Width
Write-Host $Form.Height

$Form.Visible = $false
[void]$Form.ShowDialog()

1 个答案:

答案 0 :(得分:0)

您可以使用锚定来实现这一目标。或者更确切地说不使用它们

默认情况下,控件锚定在窗体的左上角,这意味着当更改窗体大小时,它们与窗体左上角的距离将保持不变。如果将控件锚点更改为左下角,则在调整表单大小时,控件将与表单的底部和左侧保持相同的距离。

在某个方向上关闭锚点将在调整大小时使控件在该方向上居中。

注意:在VS2015中通​​过属性窗口关闭锚点可能需要输入None,None(而不是默认的Top,Left)