Abbiamo creato alcuni script di PowerShell di grandi dimensioni. Ma col passare del tempo abbiamo dato le sceneggiature ai non programmatori. Quindi abbiamo deciso che era giunto il momento di una GUI semplice e intuitiva per PowerShell.Utilizzo di WPK per la GUI PowerShell
Ho visto i video del canale 9 di James Brundage. I suoi video fanno un ottimo lavoro di spiegazione di Window, Stack-Panel, Doc-Panel, Grid, Labels e Textboxes. Tuttavia ci sono oltre 60 controlli in totale. Non sapendo che WPF non aiuta.
Quello che vorrei fare è essere in grado di effettuare le seguenti operazioni:
Text Input
elenco a discesa
RadioButton Group
Casella
mi si avvicinò con un esempio che fa la primi tre ma con bug.
Il controllo radio mostra visivamente il primo pulsante selezionato, ma quando tiro il valore per il gruppo non è corretto.
Non riesco a trovare un esempio per la casella di controllo.
Qualsiasi consiglio sarebbe apprezzato.
Ecco la mia prova di PLC in 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"
}
}
}
}
Qual è il problema con il pulsante di scelta? Non riesco a vederne. –
bernd, è quando tento di riavere il pulsante selezionato, non mi dà quello che ho selezionato. – Razcer
Ho provato tutti i casi di e, stato iniziale, tasto centrale, destro, sinistro e "Chiama PS Script": Radio => Primo, Radio => Primo, Radio => Terzo, Radio => Primo. Hai sempre avuto lo stesso valore o sei diventato diverso, ma valori sbagliati? –