@Limbend

WPF. Как напечатать WrapPanel?

Необходимо послать в печать (на принтер) WrapPanel с разными элементами. Я создал несколько UserControl’a и заполняю его через Children.Add(MyUserControl)

Печатаю через:

var visualsPage = new List<Visual>();
var dialog = new PrintDialog();
            if (dialog.ShowDialog() == true)
            {
    //Подготовка к печати
             }

        dialog.PrintDocument(new Paginator(visualsPage.ToArray()), "Печать");

1) Собственно вопрос в том, как преобразовать WrapPanel, в Visual (Чтобы положить его в visualsPage)

2) Можно ли (Стоит ли) модифицировать старый способ, чтобы можно было использовать несколько видом элементов в WrapPanel

Раньше работал с одним видом элементов в WrapPanel

for (int i = 0; i < IcBook.Items.Count; i++)
                {
                    page.Add((Visual)IcBook.ItemContainerGenerator.ContainerFromIndex(i));
                }

Где IcBook выглядил примерно так:

<Grid Name="MainGrid">
        <ItemsControl Name="IcBook" ItemsSource="{Binding}">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <Grid/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <ItemsControl ItemsSource="{Binding LebelList}" Padding="20">
                        <ItemsControl.ItemsPanel>
                            <ItemsPanelTemplate>
                                <WrapPanel/>
                            </ItemsPanelTemplate>
                        </ItemsControl.ItemsPanel>
                        <ItemsControl.ItemTemplate>
                            <DataTemplate>
                                <Border Width="376.5" BorderBrush="Black" BorderThickness="3">
                                    <Grid>
<!--Структура элемента WP-->

                                    </Grid>
                                </Border>
                            </DataTemplate>
                        </ItemsControl.ItemTemplate>
                    </ItemsControl>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </Grid>
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы