Pergunta

Eu tenho um aplicativo que contém muitos controles em um painel, cada um com seu próprio vídeo de reprodução de mediarelement. Eu tenho procurado os novos recursos de virtualização da interface do usuário do Silverlight 3 para melhorar o desempenho ao rolar por muitos desses controles em uma porta de vista menor.

Pela minha experiência, entendi que sempre que um controle de mediarelement é removido e depois re-adiado para a árvore visual, a mídia deve rejeitar. Suponho que tentar implementar a virtualização da interface do usuário em qualquer tipo de painel personalizado cheio de controles mediaLeent faria com que qualquer elementos fora da tela parasse de reproduzir e depois se reproduza antes de jogar assim que forem rolados na tela. Alguém já teve alguma experiência com esta situação?

Se for esse o caso, existem soluções alternativas ou maneiras possíveis de implementar a virtualização da UI com controles contendo medialements sem efetuar a reprodução que está em andamento?

Foi útil?

Solução

Eu não acho que exista uma ótima solução para esse problema, eu enfrentei o mesmo problema de rejeição, implementando arrastar e soltar, já que os controles tiveram que ser removidos temporariamente e depois novamente no novo local na árvore visual, fazendo com que o medielement fosse rejeição.

Caso qualquer outra pessoa tenha esse problema, minha melhor solução alternativa foi usar o Videobrush nos controles reais, com todos os medialements correspondentes sendo adicionados a um painel oculto no nível do aplicativo. Se o controle deixar temporariamente a árvore visual (devido à virtualização da interface do usuário ou arrastar e soltar), apenas o videobrush será removido e o mediarelement real permanecer no painel oculto, para que não ocorra rejeição.

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