为什么弹出窗口上的图标和按钮有时看起来不一样?
Why does the icon and buttons on the popup look different sometimes?
当我注意到发生了一些奇怪的事情时,我正在使用 PowerShell 测试弹出窗口。
与另一种显示方法相比,弹出窗口左侧的图标看起来有所不同。此外,按钮样式也不同。
它们都是 运行 在同一系统 (Windows 10 Pro) 上,并且代码完全相同(如下所示)。两者都是 运行 PowerShell 5.1。
Add-Type -AssemblyName PresentationFramework
$result = [System.Windows.MessageBox]::Show("Would you like to continue?", "Continue?", "YesNo", "Information", "No")
Write-Host $result
1.旧图标和按钮
旧图标和按钮是使用典型的 PowerShell 应用程序创建的。我将文件保存为 .ps1
文件,然后像往常一样 运行 它。
$ ./test.ps1
但是,它给了我这个弹出窗口。这很正常,但它看起来更像是 Windows 7 弹出窗口而不是 Windows 10.
2。新图标和按钮
新图标和按钮是使用 Windows PowerShell ISE 创建的。是运行没有保存文件(直接点击运行按钮执行)
这给了我一个弹出窗口,我希望在 Windows 10.
上看到
那么,这种行为是预期的吗?还有,为什么会这样?
解决方案
您需要在弹出窗口之前的代码中添加以下行。
[System.Windows.Forms.Application]::EnableVisualStyles()
这会给弹出窗口带来新的、现代的感觉。
为什么?
发生这种情况的原因是,当 运行在 PowerShell ISE 中执行此操作时,它会自动 运行 使用 EnableVisualStyles
选项对其进行设置。
但是,当代码在 PowerShell 中为 运行 时,它不会添加 EnableVisualStyles
部分,除非您指定如此。
这就是弹出窗口在 PowerShell 中看起来“较旧”,但在 PowerShell ISE 中看起来更现代的原因。
当我注意到发生了一些奇怪的事情时,我正在使用 PowerShell 测试弹出窗口。
与另一种显示方法相比,弹出窗口左侧的图标看起来有所不同。此外,按钮样式也不同。
它们都是 运行 在同一系统 (Windows 10 Pro) 上,并且代码完全相同(如下所示)。两者都是 运行 PowerShell 5.1。
Add-Type -AssemblyName PresentationFramework
$result = [System.Windows.MessageBox]::Show("Would you like to continue?", "Continue?", "YesNo", "Information", "No")
Write-Host $result
1.旧图标和按钮
旧图标和按钮是使用典型的 PowerShell 应用程序创建的。我将文件保存为 .ps1
文件,然后像往常一样 运行 它。
$ ./test.ps1
但是,它给了我这个弹出窗口。这很正常,但它看起来更像是 Windows 7 弹出窗口而不是 Windows 10.
2。新图标和按钮
新图标和按钮是使用 Windows PowerShell ISE 创建的。是运行没有保存文件(直接点击运行按钮执行)
这给了我一个弹出窗口,我希望在 Windows 10.
上看到那么,这种行为是预期的吗?还有,为什么会这样?
解决方案
您需要在弹出窗口之前的代码中添加以下行。
[System.Windows.Forms.Application]::EnableVisualStyles()
这会给弹出窗口带来新的、现代的感觉。
为什么?
发生这种情况的原因是,当 运行在 PowerShell ISE 中执行此操作时,它会自动 运行 使用 EnableVisualStyles
选项对其进行设置。
但是,当代码在 PowerShell 中为 运行 时,它不会添加 EnableVisualStyles
部分,除非您指定如此。
这就是弹出窗口在 PowerShell 中看起来“较旧”,但在 PowerShell ISE 中看起来更现代的原因。