Raz*_*cer 6 powershell user-interface
我们已经创建了一些很棒的PowerShell脚本.但随着时间的推移,我们已经将脚本提供给非程序员.所以我们决定是时候为PowerShell提供一个简单易懂的GUI.
我看过James Brundage的9频道视频.他的视频在解释窗口,堆栈面板,文档面板,网格,标签和文本框方面做得很好.但总共有60多个控件.不知道WPF没有帮助.
我想做的是能够做到以下几点:
文本输入
下拉列表
RadioButton组
复选框组
我想出了一个例子,前三个但是有bug.
无线电控制可视地显示所选的第一个按钮,但是当我拉出该组的值时,它是不正确的.
我找不到Checkbox的示例.
任何提示将不胜感激.
这是我在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。
我的观点是你有两种技术解决方案。
在第一个解决方案中,您可以直接使用 Visual Studio 创建表单并“转换”它,或者使用Sapien公司名为“ PrimalForms Community Edition ”的工具创建它,这是一个为 PowerShell 用户提供的免费 GUI 构建工具。您构建 GUI(像 .NET 开发人员一样),该工具以 PowerShell 语法生成窗口窗体代码。您只需在正确的位置调用脚本函数(为每个事件脚本块生成的函数)。这个解决方案对于普通形式来说是可以的。
WPF 解决方案更新一些,专门用于您想要在表单中添加 2D 或 3D 图形或适应不同屏幕尺寸的情况。在此解决方案中,您必须构建表单的 XAML 表示形式(例如使用 Visual Studio 2010 Expess),然后将其加载到 PowerShell 中。此解决方案需要安装 PowerShell 2.0 和 Framework 3.5 以及特殊标志 (-STA) 来启动 PowerShell。对我来说,WPK 模块是建立在这个解决方案之上的。
它还存在一种在 PowerShell 中创建图表的方法。
如果您对一种或其他解决方案感兴趣,请告诉我。
我希望它有帮助。
J.P
| 归档时间: | 
 | 
| 查看次数: | 4461 次 | 
| 最近记录: |