WPF / C # - Создать FlowDocument программно из XAML? - PullRequest
2 голосов
/ 17 мая 2011

Я вроде новичок в этом FlowDocument, поэтому я совершенно готов признать, что я делаю что-то не так. С учетом сказанного я написал FlowDocument, который существует в моем проекте, в виде файла XAML.

Это очень просто, поскольку я только начал это:

<FlowDocument xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
              ColumnWidth="400" FontSize="14" FontFamily="Georgia">
    <Table>
        <Table.Columns>
            <TableColumn Width="*" />
            <TableColumn Width="*" />
            <TableColumn Width="*" />
        </Table.Columns>

        <TableRowGroup>
            <TableRow>
                <TableCell>
                    <BlockUIContainer>
                        <Image Source="{Binding Logo}" />
                    </BlockUIContainer>
                </TableCell>
            </TableRow>
        </TableRowGroup>
    </Table>
</FlowDocument>

Теперь, с помощью моего кода, я хотел бы получить ссылку на этот документ, чтобы я мог установить привязку к модели, чтобы установить источник изображения. Может кто-нибудь, пожалуйста, укажите мне, как создать экземпляр FlowDocument и загрузить его в коде позади?

Заранее спасибо,
Sonny

1 Ответ

3 голосов
/ 17 мая 2011
var flowDocument = 
    (FlowDocument)Application.LoadComponent(
        new Uri(@"SomeFlowDocument.xaml", UriKind.Relative));

flowDocument.DataContext = this;

Dispatcher.CurrentDispatcher.Invoke(
    DispatcherPriority.SystemIdle,
    new DispatcherOperationCallback(arg => null ), null);

См. этот ответ для объяснения этого последнего бита.

Показывает, как загрузить документ из ресурса и добавить контент, используя привязки.

...