• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

将WPK用于PowerShell GUI

user-interface 来源:Razcer 4次浏览

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

我看过詹姆斯布伦戴奇的9频道录像。他的视频在解释Window,Stack-Panel,Doc-Panel,Grid,Labels和Textboxes方面做得非常出色。 但是总共有60多个控件。不知道WPF没有帮助。

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

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

我想出了,做了一个例子前三名但有bug。
无线电控制器直观地显示了第一个选择的按钮,但是当我拉出该组的值时,它是不正确的。

我找不到复选框的示例。

任何提示将不胜感激。

这是我在PowerShell的朝鲜劳动党测试:

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。

我的意见是,你有两个技术解决方案。

  1. 您建立在Windows窗体,这是建立在GUI德.NET框架
  2. 您建立在WPF的顶部的GUI前一种方法的顶部的GUI,至极是一种新的方式来在德.NET框架构建GUI

在第一个解决方案,您可以直接用Visual Studio创建您的形式和“transform”,或与被称为Sapien公司工具创建“PrimalForms Community Edition”至极是一个免费的GUI构建PowerShell用户的工具。您可以构建GUI(如.NET开发者),并且该工具使用PowerShell语法生成Window Form代码。您只需在正确的位置(为每个事件脚本块生成的那个)调用脚本函数。这种解决方案适用于正常形式。

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

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

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

我希望它有帮助。

JP


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)