- Ben kullanıcı yeniden boyutlandırmak için mümkün istiyorum ama Yalnızca yatay olarak sola doğru'a büyütün. Pencerenin
- sağ sınır her zaman orijinal yer yer kalmak gerekiyor.
kendisini yeniden boyutlandırma çalışır, ancak yeniden boyutlandırma sırasında yatay hareket penceresi. Ayrıca, yeniden boyutlandırmaya her başladığımda, penceresi,, sola veya sağa bir kez atlar.
# custom resize example
[void][System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$Form1 = New-Object System.Windows.Forms.Form
$Form1.size = "500,500"
$Form1.FormBorderStyle = "None"
$Form1.TopMost = $true
$Form1.StartPosition = "CenterScreen"
$Form1.add_MouseClick({ if ($_.Button -eq "Right") { $form1.close()} })
$resizeBar = New-Object System.Windows.Forms.Label
$resizeBar.BackColor = "150,150,150"
$resizeBar.Size = "8,500"
$resizeBar.Cursor = "SizeWE"
$Form1.controls.add($resizeBar)
$resizeBar.add_MouseDown({ $ResizeTimer.start()})
$resizeBar.add_MouseUp({ $ResizeTimer.stop()})
$comp = new-object System.ComponentModel.Container
$ResizeTimer = New-Object System.Windows.Forms.Timer($comp)
$ResizeTimer.Interval = 10
$ResizeTimer.add_Tick({
$MousePosX = ([System.Windows.Forms.Cursor]::Position).x
$Form1_LeftPos = $Form1.Left
if ($lastmx -eq 0) {$script:lastmx = $MousePosX }
$diffX = $MousePosX - $lastmx
$Form1.width = ($Form1.width - $diffX)
$Form1.Left = $Form1_LeftPos - $diffX
$script:lastmx = $MousePosX
})
$Form1.showdialog()
Teşekkür: Orijinal senaryo oldukça büyük olduğu için
ben de sorunu gösteren bir örnek yaptı!