Pergunta

Um aplicativo que nossa empresa está trabalhando atualmente exibe muitas formas de retângulo com gradientes para desenhar 'ladrilhos'. Uma discussão interna surgiu sobre isso colocou uma questão de desempenho. Esses ladrilhos são de cerca de 100 pixels em 200 pixels e são gradientes de vermelho, amarelo ou verde. A qualquer momento, pode haver até 100 desses ladrilhos na tela. Seria mais desempenho criar uma imagem para cada um (vermelho, amarelo, verde) e repeti -la quando necessário, ou seria melhor continuarmos desenhando -os usando pincéis WPF padrão?

EDIT: Para esclarecer, o pincel de gradiente que estamos usando é um LinearGradientBrush.

Foi útil?

Solução

Por experiência, desenhar -os usando pincéis terá um desempenho muito melhor. A sobrecarga de carregar as imagens de ladrilhos e torná -las é grande em comparação com os retângulos cheios de renderização.

Outras dicas

A única maneira de esclarecer isso seria experimentá -lo nos dois sentidos e medir o desempenho de cada abordagem.

Você precisará adicionar código ao tempo que o loop de renderização e registrar o resultado para arquivar e forçar um Rainha de 1000 (ou mesmo 100.000) para poder obter uma figura realista.

Meu pressentimento é que o LinearGradientBrush Seria mais rápido do que carregar uma imagem (mesmo de recursos) - mas estou disposto a provar errado.

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