Необходимо послать в печать (на принтер) 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>