Итак, я пытаюсь напечатать сетку данных с каким-то другим содержимым внутри нее (просто одиночной меткой), но я хочу создать новый макет для печати с пользовательскими данными и пользовательским стилем в нем. Вот что я сейчас получаю при печати:
С этой страницы:
Что я делаю, так это то, что у меня есть StackPanel с именем print_content, который находится внутри сетки и имеет текстовый блок. Код:
<Grid Margin = "15,0">
<Grid.RowDefinitions>
<RowDefinition Height = "auto"></RowDefinition>
<RowDefinition Height = "auto"></RowDefinition>
<RowDefinition Height = "auto"></RowDefinition>
</Grid.RowDefinitions>
<!--Class selector and tour part selector-->
<StackPanel Grid.Row = "0" Orientation = "Horizontal" HorizontalAlignment = "Left">
<TextBlock FontWeight = "Bold">Klasse</TextBlock>
<ComboBox x:Name = "inp_klasse" Margin = "15,0" MinWidth = "60" Height = "auto" />
</StackPanel>
<StackPanel Grid.Row = "0" Orientation = "Horizontal" HorizontalAlignment = "Center">
<TextBlock FontWeight = "Bold">Deel</TextBlock>
<ComboBox x:Name = "inp_tour_part" Margin = "15,0" MinWidth = "60" Height = "auto" />
</StackPanel>
<StackPanel Grid.Row = "1" Orientation = "Horizontal" HorizontalAlignment = "Right">
<Button x:Name = "Btn_print" Margin = "15,0" MinWidth = "60" Height = "auto" Style = "{StaticResource Button-default}" Content = "Print"/>
</StackPanel>
<StackPanel Grid.Row = "2" Margin = "0,30" x:Name = "print_content">
<TextBlock x:Name = "txt_selected_class" Text = "KLASSE HIER" />
<!--Here will the result come-->
</StackPanel>
</Grid>
Проблема не в этом, я просто хочу напечатать сетку данных с меткой (то есть панель стека), но НЕ со стилем по умолчанию. Стиль должен быть другим. (Не знаю, как я могу это сделать), код печати, который я использую (запускается кнопкой печати), следующий:
private void Btn_print_Click(object sender, RoutedEventArgs e)
{
PrintDialog Printdlg = new PrintDialog();
if ((bool)Printdlg.ShowDialog().GetValueOrDefault())
{
Size pageSize = new Size(Printdlg.PrintableAreaWidth, Printdlg.PrintableAreaHeight);
// sizing of the element.
print_content.Measure(pageSize);
print_content.Arrange(new Rect(5, 5, pageSize.Width, pageSize.Height));
Printdlg.PrintVisual(print_content, Title);
}
}
Итак, главный вопрос здесь; Как я могу создать собственный макет с дополнительными параметрами (такими как время печати и изображения внизу и текст вверху) с другим, не текущим стилем?
Редактировать:
Здесь дело не только в изменении стиля, изменение стиля во время выполнения - известное решение, мне нужно создать PDF-файл, который на выходе выглядит так:
Ближе это мне не помогает .... Я хочу сделать собственный "шаблон"





Возможный дубликат Изменение стилей во время выполнения в WPF