Pergunta

o documentação para o GestureRecognizer A classe no .NET afirma que a ordem de tipo dos resultados retornados pelo método de reconhecimento tem a ver com o quão forte é a confiança.

No entanto, quando criei minha própria amostra (no WPF, .NET 3.5SP1) que cria um reconhecedor, não vejo esse comportamento. Para o registro, defina o reconhecimento para reconhecer todos os gestos possíveis (Applicationgesture.Todosgestures).

Meu código começa com Mousedown e depois registra todos os pontos no mousemove até receber um evento de mouseup que então chama o reconhecimento.Recognize () em um derrame gerado a partir de todos esses pontos (normalmente na faixa de 100 pontos).

O que muitas vezes recebo é mais de 4 hits classificados como este (confiança relatada entre colchetes):

  1. Nogesture (forte)
  2. Arrowleft (intermediário)
  3. Quadrado (forte)
  4. Chevrondown (forte)

Isso é um inseto? Devo prestar atenção ao primeiro item da matriz?

Foi útil?

Solução

Minha experiência trabalhando com isso foi que a ordem dos itens no conjunto de resultados era pelo menos um tanto arbitrária. Acabei classificando por confiança (descendente) e, em seguida, a provável que fosse um gesto desejado (com base no contexto) e uma sensação de quanto de uma mudança um determinado gesto faz no estado de aplicação.

Por exemplo: se eu soubesse que o círculo era um gesto "selecione este item" e o quadrado era um "reconstruir dados em armazenamento em cache para este item, que pode levar 5 minutos desde que vamos para vários serviços externos" (obviamente uma má escolha de gestos, dada a semelhança), eu preferiria escolher o Circle se tivesse voltado com a mesma confiança. Às vezes eu até aceitava uma confiança mais baixa sobre uma maior (digamos, dentro de um nível).

Isso exige um forte senso de contexto em seu aplicativo, mas achei valioso garantir que você não tenha recebido duas confidências "fortes" e acabou fazendo o que levou mais trabalho para desfazer. Uma coisa que sempre é verdadeira sobre essas interfaces gestuais é que nunca faremos a coisa certa 100% do tempo, por isso, por isso, o mínimo de dano se estivermos errados é algo a ter em mente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top