В настоящее время я работаю над проектом, который требует, чтобы я поставил контрольную панель в одну из панелей панели состояния. Есть ли у кого-нибудь опыт в этом, или кто-нибудь может указать какой-либо вклад или направление того, как это делается. Я искал 2 дня для решения без везения. Там до сих пор нет обилия powershell помочь там, особенно когда дело доходит до форм Windows.Вставьте индикатор прогресса в панель панели состояния с помощью форм powershell и окон
ответ
Это относительно просто сделать с источниками данных PowerShell в WPK.
Вы можете получить WPK как часть PowerShellPack.
Вот довольно приличный зритель прогресс написал в WPK:
New-Grid -Columns 2 {
New-TextBlock -Margin 10 -TextWrapping Wrap -ZIndex 1 -HorizontalAlignment Left -FontWeight Bold -FontSize 12 -DataBinding @{
"Text" = "LastProgress.Activity"
}
New-TextBlock -Margin 10 -ZIndex 1 -TextWrapping Wrap -Column 1 -VerticalAlignment Bottom -HorizontalAlignment Right -FontStyle Italic -FontSize 12 -DataBinding @{
"Text" = "LastProgress.StatusDescription"
}
New-ProgressBar -ColumnSpan 2 -MinHeight 250 -Name ProgressPercent -DataBinding @{
"Value" = "LastProgress.PercentComplete"
}
} -DataContext {
Get-PowerShellDataSource -Script {
foreach ($n in 1..100) {
Write-Progress "MajorProgress" "MinorProgress" -PercentComplete $n
Start-Sleep -Milliseconds 250
}
}
} -AsJob
PowerShellDataSource возвращает объект со списком всех выходов для данного потока и последнего элемента, выведенного на данном потоке (т.е. прогресс и LastProgress). Чтобы отобразить индикатор выполнения, нам нужно привязать свойство LastProgress.
Первая половина кода объявляет индикатор выполнения. Используя параметр -DataBinding, строки TextBlocks и Progress автоматически синхронизируются с контекстом данных. Контекст данных может быть объявлен на этом уровне (как показано в примере) или может находиться в родительском элементе управления.
В этом примере DataContext представляет собой простой сценарий PowerShell, который использует Write-Progress для вывода тестового сообщения каждую четверть секунды, но вы можете использовать любой скрипт, который вам нужен.
Надеюсь, это поможет.
В настоящее время я пытаюсь запустить powershellpack ise и получить ошибку времени выполнения r6034. Попытка проверить вышеописанное исправление, но не может пройти мимо этой проблемы. – stratrider
Я могу помочь вам здесь, мне будет несколько дней, чтобы получить время, чтобы просмотреть мои архивы или переделать их. Надеюсь, вы можете подождать ... –