2013-03-07 6 views
5

In WPF, al fine di aggiungere un FixedPage ad un FixedDocument nel codice si ha la necessità di:Qual è il modo corretto di aggiungere un PageContent/FixedPage a un FixedDocument in WPF?

var page = new FixedPage(); 
var pageContent = new PageContent(); 

((IAddChild)pageContent).AddChild(page); 

Questo sembra essere l'unico modo, però:

  • La documentazione MSDN dice esplicitamente uno non dovrebbe farlo ('Questa API supporta l'infrastruttura .NET Framework e non è pensata per essere utilizzata direttamente dal tuo codice .'- PageContent.IAddChild.AddChild Method).

  • È brutto dover eseguire il cast su un'implementazione dell'interfaccia esplicita per aggiungere il contenuto a PageContent.

  • Non è semplice eseguire l'operazione di base di PageContent.

La documentazione non spiega in realtà come eseguire questa operazione e non sono riuscito a trovare altre informazioni su come eseguirlo. C'è un altro modo? Un modo "corretto"?

risposta

7

Secondo la documentazione MSDN, è sufficiente aggiungere un oggetto FixedPage alla proprietà PageContent.Child e quindi aggiungere che al FixedDocument chiamando il metodo FixedDocument.Pages.Add.

Per esempio:

public FixedDocument RenderDocument() 
{ 
    FixedDocument fd = new FixedDocument(); 
    PageContent pc = new PageContent(); 
    FixedPage fp = new FixedPage(); 
    TextBlock tb = new TextBlock(); 

    //add some text to a TextBox object 
    tb.Text = "This is some test text"; 
    //add the text box to the FixedPage 
    fp.Children.Add(tb); 
    //add the FixedPage to the PageContent 
    pc.Child = fp; 
    //add the PageContent to the FixedDocument 
    fd.Pages.Add(pc); 

    return fd; 
} 
+0

Grazie, dov'è la documentazione? – nicodemus13

+0

Controlla l'esempio nella parte inferiore di questa pagina: http://msdn.microsoft.com/en-us/library/system.windows.documents.pagecontent%28v=vs.100%29.aspx – dtesenair

+0

durante la scrittura del pc. Bambino mostra un errore. è un metodo get non impostato – Sivajith