无边界Winforms窗口的DPI缩放出错

时间:2016-03-24 21:12:49

标签: winforms powershell dpi

我有 PowerShell 脚本,带有无边框窗口,随着越来越多人使用DPI缩放,我相应地测试了我的表单。

奇怪的是它似乎有规模地扩展到150%,但是175%的形式本身(红色)比richtextbox(灰色)增长得更多,如下例所示。

有关如何解决或阻止这种情况的任何想法?

[void][System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")

$form = New-Object System.Windows.Forms.Form
$form.Size = "200,200"
$form.FormBorderStyle = "None"
$form.BackColor = "#C15959" 
$form.TopMost = $true
$form.StartPosition = "CenterScreen"

$form.AutoScalemode = "Dpi"
$form.AutoSize = $true
$form.AutoSizeMode = "GrowOnly"

$rtb = New-Object System.Windows.Forms.RichTextBox
$rtb.BorderStyle = "FixedSingle"
$rtb.BackColor = "#EDEDED"
$rtb.Anchor = "Top,Bottom,Right,Left"
$rtb.Size = "181,155"
$rtb.Location = "1,1"
$rtb.AutoSize = $true

$rtb.add_mouseclick({ $form.close()})
$form.Controls.Add($rtb)
$form.showdialog()

以100%DPI缩放形式:

Form at 100% DPI scaling

形式为DPI缩放率为175%:

enter image description here

1 个答案:

答案 0 :(得分:0)

解决方案不是为表单本身设置size而是clientsize