Pergunta

Eu tenho um aplicativo WinForms, executando no .NET 3.5. Este aplicativo gera HTML em tempo real, que inclui o documento completo e também uma folha de estilo em linha-CSS (dentro do elemento da cabeça).

Estou usando o controle do webbrowser e a configuração do navegador.DocumentText para o meu HTML gerado, mas isso parece não aplicar adequadamente estilos no elemento corporal (eu defini a cor de fundo para #000000 no CSS, mas o fundo ainda é branco ).

Gostaria de saber se a) existem algumas alternativas para renderizar HTML relativamente simples em C# (ou seja, um renderizador HTML completamente gerenciado) ou B) Qual seria a melhor maneira de renderizar HTML usando o controle Webbrowser, incluindo o manuseio correto de Inline-CSS e sem usando um arquivo temporário no disco rígido.

Editar: O problema do CSS não que aplicava era um problema separado. Coloquei meu CSS real em um bloco CDATA, o que parece fazer com que não se aplique corretamente. Isso agora está corrigido, mas a questão em si ainda permanece.

Foi útil?

Solução 2

Ficou com o webbrowser embutido. O htmlRenderer da outra resposta é ótimo, mas torna uma imagem.

Outras dicas

Para o renderizador HTML gerenciado, consulte HtmlRenderer no github.

Você pode procurar usar um mecanismo de exibição. A maioria dos motores de visão pode funcionar de maneira independente de API

Por exemplo, Nhaml e Nvelocity podem ser usados

http://code.google.com/p/nhaml/

http://www.castleproject.org/others/nvelocity/index.html

E eu suponho que o Spark também pode ser

http://dev.dejardin.org/

Eu desenvolvi o que você estava pedindo: um "Renderizador HTML completamente gerenciado", que vai"renderizar html relativamente simples em c#". Ele suporta um subconjunto de CSS, que você pode"Especifique em uma folha de estilo CSS embutida (dentro do elemento da cabeça)".

Para detalhes, veja o controle HTML ModelText.

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