Como você faz uma barra de faixa Winform (deslizante) se comportam de forma sensata em um monitor touch-screen
-
09-09-2019 - |
Pergunta
O que é a maneira mais fácil de modificar uma barra de faixa Winforms de modo que quando um usuário clica em que a barra de faixa salta para a localização do mouse?
Por padrão, as barras pista move-se para a meio caminho entre a sua localização atual e onde o mouse foi clicado.
Update: Eu estou tentando fazer isso para que eu possa usar a barra de faixa de um touch-screen. Com um arrastar-tela de toque é muito difícil, portanto, o requisito para a barra para saltar direto para onde as torneiras do usuário.
Solução
Eu nunca fiz isso, mas eu gostaria de começar por olhar para a localização do clique do mouse. Eu poderia, então, descobrir o quão longe em toda a extensão atual do trackbar o clique foi localizado e definir a localização do rastreador a esse ponto.
Eu começaria por olhar para substituir o controle e manipular as funções de eventos relacionados com o Mouse (OnMouseDown()
, por exemplo). Note-se que, em alguns casos, pode ser importante chamar a implementação da classe base de uma função substituída, certifique-se de considerá-lo numa base caso-a-caso. (Eu só entrou em conflito com isso, por isso é fresco na minha mente.)
Note que você só deve alterar o comportamento dos controles padrão desta maneira se você tiver um muito razão convincente. Eles são padrão, porque eles se comportam de maneira previsível em muitas centenas / milhares de programas. Fazer algo se comportam de forma diferente para apenas o seu programa pode violar a Princípio da Lease Astonishment . A única trackbar que eu posso pensar que eu esperar para se comportar da maneira que você descreve é ??de algum tipo de media player.
Editar: Com base no seu comentário, sim, eu acho que você tem uma razão convincente. :)