Pergunta

Um dos recursos do Silverlight 4 listados em muitos documentos do PDC é a visualização de impressão.

Eu procurei exemplos sobre como usar isso e não encontrei nada até agora. Alguém já fez isso funcionando? Você pode me dar algumas dicas sobre como implementar um aplicativo da web simples com a visualização de impressão.

Foi útil?

Solução 3

Penso que pela falta de respostas e pelo fato de que, como Hurricanepkt apontou em sua resposta, Tim Heuer e outros falam sobre uma impressão virtual que, se dispensando a mesma coisa na tela, poderia ser construída com bastante facilidade em sua própria funcionalidade de visualização de impressão sob medida que o A visualização de impressão listada em algumas listas é realmente as pessoas interpretando mal o que os documentos de impressão virtual realmente são.

Outras dicas

Não vi a pré -visualização de impressão como nenhum deles, mas o suporte real de impressão no qual você pode controlar quais controles são impressos e eventos com base no processo de impressão.

Depois de procurar um tempo, encontrei uma maneira de fazer isso combinando alguns recursos que encontrei em outros projetos, mas eles o usaram para manipulação de imagens. Eu tentei com impressão e parece funcionar bem.

Aqui, como funciona: Obtenha o contêiner base para o conteúdo da impressão convertido em um bitmap usando o writeablebitmap, aqui vou usar uma tela:

WriteableBitmap wb = new WriteableBitmap(this.canvas1, null);

Use este bitmap como fonte para um controle de imagem (pode estar dentro de um scrollViewer, o que é ainda melhor).

this.imagePreview.Height = wb.PixelHeight;
this.imagePreview.Width = wb.PixelWidth;
this.imagePreview.Source = wb;

Defina unidades básicas de escala (usadas 1 % neste caso):

Point scale = new Point();      

scale.X = imagePreview.Width/100d;
scale.Y = imagePreview.Height/100d;

Em seguida, ajuste a escala usando um controle deslizante (opcional)

private void vSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {

                imagePreview.Height = scale.Y * vSlider.Value;
                imagePreview.Width = scale.X * vSlider.Value;           
        }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top