【发布时间】:2018-04-20 19:06:46
【问题描述】:
PictureBox 有问题。
当我将PictureBox 停靠在右上角时,它隐藏了位于表单中心的标签的一部分。我如何将标签放在PictureBox 的前面?我认为问题在于(Image 和 Label 声明)中的对接声明,这就是它被 PictureBox 隐藏的原因。
我怎样才能正确地做到这一点?
表格声明:
$Form = New-Object System.Windows.Forms.Form
$Form.Text = "Something"
$Form.StartPosition = "CenterScreen"
$Form.Topmost = $True
$Form.BackColor = "White"
$Form.Width = [System.Windows.Forms.SystemInformation]::PrimaryMonitorSize.Width
$Form.Height = [System.Windows.Forms.SystemInformation]::PrimaryMonitorSize.Height - 50
#$Form.AutoSize = $True
$Form.AutoSizeMode = "GrowAndShrink"
$Form.ControlBox = $false
$Form.MinimumSize = New-Object System.Drawing.Size(1280,1024)
$Form.MaximumSize = New-Object System.Drawing.Size(1920,1080)
图像声明:
$Image = [system.drawing.image]::FromFile("C:\xxx.png")
$pictureBox = new-object Windows.Forms.PictureBox
$pictureBox.Dock = [System.Windows.Forms.DockStyle]::Right
$pictureBox.BackColor = "Transparent"
#$pictureBox.Anchor = [System.Windows.Forms.AnchorStyles]::Right
$pictureBox.AutoSize = $True
$pictureBox.Image=$Image
$Form.Controls.Add($pictureBox)
标签声明:
$redLabel1 = New-Object System.Windows.Forms.Label
$redLabel1.Location = New-Object System.Drawing.Size($Form.Width, $Form.Height)
$redLabel1.AutoSize = $False
$redLabel1.TextAlign = "MiddleCenter"
$redLabel1.Dock = "Fill"
$redLabel1.Text = "Something"
$redLabel1.ForeColor = "Red"
$redLabel1.BackColor = "Transparent"
$Font = New-Object System.Drawing.Font("Arial", 55, [System.Drawing.FontStyle]::Bold)
$redLabel1.Font = $Font
$Form.Controls.Add($redLabel1)
编辑:
BringToFront() 方法已经过测试并在 50% 中工作。文本不在表格中居中,当标签遇到PictureBox 时,文本会被换行。我希望该标签会以某种方式跳过PictureBox..
截图:
【问题讨论】:
-
将您尝试过的内容添加到您的问题中(
BringToFront()或其他方法) -
好的,我在错误的地方使用了这个 BringToFront()。添加标签 Control 后它正在工作,但标签不在表格中心。它遇到图片框时被包裹,我想覆盖图片框,使其居中..所以似乎 BringToFront 将我的问题解决了 50%..
-
你能用截图展示一下它的样子吗?
-
最后添加有问题。
-
你能试试这个吗:
$redLabel1.WordWrap = $false。它还应该取决于标签的宽度。
标签: windows forms powershell