0

我在 PowerShell 工作室做一个简单的项目。我想要圆形的文本框和按钮,我该如何以编程方式或使用属性窗口来做到这一点

4

2 回答 2

0

如果它是您想要的图像:

$button.Image=[System.Drawing.Image]::FromFile('c:\image.jpg')

如果你想完成它,PowerShell Studio 是不可能的。

于 2021-07-10T04:01:40.800 回答
0

不知道这是否是在 PowerShell 上处理此问题的正确方法,只是尝试从圆形按钮转换 C# 代码。

希望它可以帮助您开始您的研究。

演示

gif演示

代码

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

$bounds = [System.Windows.Forms.Screen]::PrimaryScreen.WorkingArea

$mainForm = [System.Windows.Forms.Form]::new()
$mainForm.StartPosition = 'CenterScreen'
$mainForm.Size = [System.Drawing.Size]::new(($bounds.Width/3),($bounds.Height/3))
$mainForm.FormBorderStyle = 'Sizable'
$mainForm.Text = 'Circle Button'
$mainForm.WindowState = 'Normal'
$mainForm.KeyPreview = $True

$mainForm.Add_Resize({
    $circleBtn.Width = $mainForm.Width-100
    $circleBtn.Height = $mainForm.Height-100
    $path = [System.Drawing.Drawing2D.GraphicsPath]::new()
    $path.AddEllipse(0, 0, $circleBtn.ClientSize.Width, $circleBtn.ClientSize.Height)
    $circleBtn.Region = [System.Drawing.Region]::new($path)
})

$circleBtn = [System.Windows.Forms.Button]::new()
$circleBtn.Text = '&Hello'
$circleBtn.Font = [System.Drawing.Font]::new('Calibri',30)
$circleBtn.Width = $mainForm.Width-100
$circleBtn.Height = $mainForm.Height-100
$circleBtn.Location = [System.Drawing.Size]::new(40,20)
$circleBtn.FlatAppearance.BorderSize = 0
$circleBtn.FlatStyle = 'Flat'
$circleBtn.BackColor = [System.Drawing.Color]::LightGray
$circleBtn.Add_MouseHover({
    $this.BackColor = [System.Drawing.Color]::DarkGray
})

$circleBtn.Add_MouseLeave({
    $this.BackColor = [System.Drawing.Color]::LightGray
})
$path = [System.Drawing.Drawing2D.GraphicsPath]::new()
$path.AddEllipse(0, 0, $circleBtn.ClientSize.Width, $circleBtn.ClientSize.Height)
$circleBtn.Region = [System.Drawing.Region]::new($path)
$mainForm.Controls.Add($circleBtn)

$mainForm.Add_Shown({$this.Activate()})
$mainForm.ShowDialog()
于 2021-07-10T05:06:39.393 回答