gpt4 book ai didi

user-interface - 为 PowerShell GUI 使用 WPK

转载 作者:行者123 更新时间:2023-12-04 06:40:06 24 4
gpt4 key购买 nike

我们创建了一些很棒的 PowerShell 脚本。但随着时间的推移,我们将脚本提供给了非程序员。所以我们决定是时候为 PowerShell 提供一个简单易懂的 GUI。

我看过 James Brundage 的第 9 channel 视频。他的视频很好地解释了窗口、堆栈面板、文档面板、网格、标签和文本框。
但是,总共有 60 多个控件。不知道 WPF 无济于事。

我想做的是能够做到以下几点:

文本输入
下拉列表
单选按钮组
复选框组

我想出了一个例子,它可以完成前三个但有错误。
Radio 控件直观地显示了选择的第一个按钮,但是当我拉出该组的值时它不正确。

我找不到复选框的示例。

任何提示将不胜感激。

这是我在 PowerShell 中对 WPK 的测试:

function TestGui {
Import-Module WPK

$SelectedRadio = "First"

New-Window -Title "Test User Input" -WindowStartupLocation CenterScreen `
-Width 400 -Height 300 -Show {

New-Grid -Rows 32*, 32*, 32*, 32* -Columns 100, 1* {

#create style to use on controls
$createLblStyle = @{
Margin = 5
HorizontalAlignment = "right"
VerticalAlignment = "center"
}

#Label Text for this row
New-TextBlock -Text "Pick fruit" `
-Row 0 -Column 0 @createLblStyle

# dropdown ( combo box)
New-ComboBox -Name FruitList `
-row 0 -column 1 @createLblStyle `
-Items { "Apple", "Pear", "Peach" } -SelectedIndex 0

#Label Text for this row
New-TextBlock -Text "Pick number" `
-Row 1 -Column 0 @createLblStyle

# TextBox
New-TextBox -Name TextInputName `
-Row 1 -Column 1 @createLblStyle

#Label Text for this row
New-TextBlock -Text "Get Text Input" `
-Row 2 -Column 0 @createLblStyle

#Do three radio buttons for this row.
New-StackPanel -Row 2 -Column 1 -Orientation Horizontal {
New-RadioButton -Content "Pick first" `
-GroupName Results -IsChecked $True -On_Click {
$SelectedRadio = "First"
}

New-RadioButton -Content "Pick two" `
-GroupName Results -On_Click {
$SelectedRadio = "Second"
}

New-RadioButton -Content "Pick three" `
-GroupName Results -On_Click {
$SelectedRadio = "Third"
}
}


New-Button -Content "_Call PS Script" -Row 3 -Column 0 -Margin 3 -On_Click {
$FruitList = $window | Get-ChildControl FruitList
$TextInputName = $Window | Get-ChildControl TextInputName
$Results = $Window | Get-ChildControl Results

$Window.Close()
write-host "call PS script with: "
write-host "DropDown => " $FruitList.SelectedValue
write-host "TextBox => " $TextInputName.Text
write-host "Radio => " $SelectedRadio
}

New-Button -Content "Cancel" -Row 3 -Column 1 -Margin 3 -On_Click {
$Window.Close()
write-host "Cancel was pressed"
}
}
}
}

最佳答案

据我了解,您希望在您编写的 PowerShell 脚本之上创建一个 GUI。

我的观点是你有两种技术解决方案。

  • 您在 Windows 窗体顶部构建 GUI,这是以前在 de .NET Framework 中构建 GUI 的方式
  • 您在 WPF 之上构建 GUI,这是在 de .NET Framework
  • 中构建 GUI 的新方法

    在第一个解决方案中,您可以直接使用 Visual Studio 和“ transform”创建表单,或者使用 Sapien 创建表单名为“ PrimalForms Community Edition”的公司工具,它是适用于 PowerShell 用户的免费 G​​UI 构建器工具。您构建您的 GUI(如 .NET 开发人员)并且该工具以 PowerShell 语法生成窗口窗体代码。您只需在正确的位置调用脚本函数(为每个事件脚本 block 生成的函数)。此解决方案适用于正常形式。

    WPF 解决方案较新,专门用于在表单中添加 2D 或 3D 图形或适应不同屏幕尺寸的情况。在此解决方案中,您必须构建表单的 XAML 表示形式(例如使用 Visual Studio 2010 Expess),然后将其加载到 PowerShell 中。此解决方案需要安装 PowerShell 2.0 和 Framework 3.5 以及特殊标志 (-STA) 才能启动 PowerShell。对我来说,WPK 模块是在这个解决方案上构建的。

    它还存在一种在 PowerShell 中创建图表的方法。

    如果您对一种或其他解决方案感兴趣,请告诉我。

    我希望它有所帮助。

    J.P

    关于user-interface - 为 PowerShell GUI 使用 WPK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5252702/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com