Chúng tôi đã tạo một số tập lệnh PowerShell tuyệt vời. Nhưng khi thời gian trôi qua, chúng tôi đã đưa các kịch bản cho những người không lập trình. Vì vậy, chúng tôi đã quyết định đã đến lúc cho một GUI đơn giản dễ hiểu cho PowerShell.Sử dụng WPK cho PowerShell GUI
Tôi đã xem kênh video 9 của James Brundage. Video của anh ấy thực hiện một công việc tuyệt vời để giải thích Cửa sổ, Bảng xếp hạng, Bảng điều khiển tài liệu, Lưới, Nhãn và Hộp văn bản. Tuy nhiên, có tổng cộng 60 điều khiển. Không biết WPF không giúp được gì.
Những gì tôi muốn làm là có thể làm như sau:
Text Input
Danh sách thả xuống
RadioButton Nhóm
Checkbox Nhóm
tôi đã đưa ra một ví dụ mà không được đầu tiên ba nhưng với lỗi.
Điều khiển vô tuyến hiển thị trực quan nút đầu tiên được chọn, nhưng khi tôi kéo giá trị cho nhóm thì không đúng.
Tôi không thể tìm thấy ví dụ cho Hộp kiểm.
Mọi mẹo sẽ được đánh giá cao.
Đây là thử nghiệm của tôi của WPK trong 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"
}
}
}
}
Sự cố với nút radio là gì? Tôi không thấy gì cả. –
bernd, đó là khi tôi cố gắng lấy lại nút đã chọn, nó không cho tôi cái mà tôi đã chọn. – Razcer
Tôi đã kiểm tra tất cả các trường hợp ban đầu, nút radio bên trái, phải, trái và 'Gọi PS Script' cho: Radio => Đầu tiên, Radio => Đầu tiên, Radio => Thứ ba, Radio => Đầu tiên. Bạn có luôn nhận được cùng một giá trị hoặc bạn nhận được các giá trị khác nhau, nhưng sai? –