#winforms #powershell #animation
#winforms #powershell #Анимация
Вопрос:
Я работаю над графическим интерфейсом PowerShell и анимирую несколько событий элемента управления. Я могу заставить его работать так, как я хочу, но я хочу, чтобы он замедлялся и был немного более продуманным.
Я понимаю, что на многих языках это связано с тактовой частотой, и это не изменится. Большинство ресурсов в Интернете связаны с ускорением работы скриптов или программ.
Чтобы привести пример того, о чем я говорю:
$button.Add_MouseEnter({
0..30 | %{
$button.Location = "$_,100"
}
})
$button.Add_MouseLeave({
30..0 | %{
$button.Location = "$_,100"
}
})
Это переместит кнопку вправо на 30 единиц при наведении курсора мыши на кнопку, а когда мышь покинет кнопку, она переместится на 30 единиц влево в исходное положение.
Проблема для меня в том, что повторение 31 числа ( 0..30
) выполняется очень быстро, и оно прерывается в анимации. Я хотел бы, чтобы это конкретное действие события выполнялось медленнее, однако проблема в том, что если бы я должен был продлить итерации, он нажимает кнопку дальше, что мне не нужно.
Прошлой ночью я лежал в постели и понял, что это может сработать, но мне было интересно, есть ли какие-либо другие способы добиться этого в PowerShell.
0..5000 | %{
if($_.ToString().EndsWith(00)) {
$increment
$button.Location = "$increment,100"
}
}
Я попытался интегрировать его в скрипт, но это резко снизило производительность (вместо использования 5000 я использовал 50000), поэтому я прислушиваюсь к предложениям.
Спасибо!
Комментарии:
1.
sleep -milliseconds 10
?2. Windows не может перерисовывать себя, пока вы удерживаете поток пользовательского интерфейса для своей итерации.
3. Вы можете использовать
Timer
.4. @wOxxOm Это приводит к приостановке всего скрипта или просто к тому, что один поток переходит в спящий режим?
5. @PetSerAl Похоже, у него не было проблем с перемещением. Это не создание нового объекта, это просто переназначение значения свойства. Я предполагаю, что дана команда, которая заставляет ее перерисовывать при установке значения свойства.