русский
Germany.ruForen → Архив Досок→ Programmierung

Используете уникальные идентификаторы для объектов?

06.11.24 00:08
Re: Используете уникальные идентификаторы для объектов?
 
alex445 патриот
in Antwort NightWatch 05.11.24 23:24, Zuletzt geändert 06.11.24 00:11 (alex445)

Кстати, когда делаешь на одном и том же элементе обработчики на одно нажатие и на удержание, то тоже немало попотеть приходится, если не знать, как. Обычно события удержания нету, и надо его самому эмулировать. При этом надо сделать, чтобы оно не помешало событию нажатия. Тут надо тогда заменить одно нажатие на клик - т.е. нажатие и отжатие на одном и том же элементе. А ужержание, если такого обработчика нет изначально, эмулируется подпиской сразу на три события: нажатия, отжатия и покидания элемента (если такое событие в вашем фреймворке есть). Далее после нажатия притормаживаем поток параллельно выполняемой таской (Task.Delay или что там у вас для этого), в которую передаём токен отмены. Если таска задержки закончилась, то выполняем код для логики удержания нажатия контрола. В обработчиках же отжатия и покидания элемента отменяем таску задержки - логично, т.к. если слишком рано отжали или при нажатии сдвинули указатель или палец за пределы контрола, то удержания не произошло.


Проверил на своём проекте - отлично работает. Если зажал контрол, то события клика не происходит, а происходит событие удержания. А если быстро нажал и отжал - то удержания нет, а есть просто клик.


Использую это удержание для вызова подсказки по элементу там, где нельзя задержать указатель поверх элемента - для тачевых интерфейсов например.

 

Sprung zu