Pergunta

No meu aplicativo WPF, tenho alguma funcionalidade de desenho. Eu resolvi isso usando uma tela e gestos de mouse manualmente, e também adiciono os traços desenhados (embrulhados no InkPresenter) a essa tela.

Usando a mistura, de repente descobri que há algo chamado InkCanvas. De acordo com a mistura, este é um controle que "Define uma área que recebe e exibe traços de tinta"., então parece relevante para o que eu faço. Mas tudo parece funcionar bem usando uma tela simples.

Então; Como os InkCanvas diferem da tela simples e por que devo optar por usar isso?

Foi útil?

Solução

Eles realmente devem servir a dois propósitos diferentes. Canvas é para layout. Especificamente para um controle mais exato sobre o layout usando o posicionamento absoluto. InkCanvas é, como você sabe, para capturar e exibir traços.

O que você está fazendo está bem, mas InkCanvas tem alguns bons recursos adicionais, como EditMode entre outros. É para salvá -lo de escrever muitas das coisas que você teria que fazer à mão usando Canvas. Usando Canvas é um rolo seu próprio tipo de abordagem onde InkCanvas é um uso pré-construído em uma espécie de abordagem.

Outras dicas

Um InkCanvas lida com os eventos do mouse para você desenhar na tela. Ele também tem essa funcionalidade:

  • Salvar/carregar
  • Redimensionar/escala
  • Destaque por trás do texto
  • Modo borracha

http://www.kirupa.com/blend_wpf/inkcanvas_pg1.htm

Quando o desempenho está preocupado, o InkCanvas com eventos reais do mouse é muito mais rápido do que criar um golpe no StylusPointCollection, descobri que adicionar novos pontos a um StylusPointCollection é uma operação cara.

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