Как разработать и напечатать специальную "бумагу для подачи заявления" в WPF?
На самом деле это физический документ - "страховая форма", в которой клиент страхового полиса заполняет свою информацию. До сих пор клиент должен был написать всю запрошенную информацию в пустых полях на бумаге, используя ручку, конечно. Но я решил разработать приложение в WPF, с помощью которого агент страховой компании может легко "набрать" желаемую информацию и затем распечатать ее на той же "страховой форме".
Поэтому мне нужно создать пустую страницу формата А4 и разместить несколько "текстовых полей" в определенных местах на странице. Позвольте пользователю настроить размер и положение их на странице и заполните текст. Затем распечатайте страницу.
Вопрос в том, как мне это сделать? Я понятия не имею, что это за инструмент в C# .NET и WPF, который я могу использовать. System.Drawing
может быть?
2 ответа
Используя Visual Studio, вы должны создать новое приложение WPF, добавить новый UserControl в проект и внутри (XAML of), который UserControl
в визуальном дизайнере студии вы бы добавили корневую панель макета, такую как StackPanel или Grid, и на этой панели вы добавили бы свои Label и TextBox ( CheckBox, RadioButton и т. д.), которые пользователь должен заполнить.
Затем вы поместите этот UserControl в главное окно (вероятно, внутри ScrollViewer, поскольку вся страница может не помещаться на экране) вместе с кнопкой печати или пунктом меню.
Вы можете легко распечатать это целое UserControl
используя PrintVisual в обработчике события click кнопки. Вы должны сделать это довольно быстро, если это все, что вам нужно.
В качестве дополнительного шага вы можете выбрать стили для элементов управления и надписей, чтобы они больше походили на бумажную форму.
Вопрос в том, как выглядит ваша форма. Если вы ожидаете что-то разработанное - используйте обычные объекты, создайте новое окно и распечатайте окно, не показывая. Что-то вроде:
var window = new YourWindow();
window.Show();
PrintDialog pd = new PrintDialog();
pd.PrintVisual(window,"MyForm");
window.Close();
Разверните, Google Как распечатать окно wpf
Если вам нужен более постраничный документ (например, документ Word), вы можете использовать RichTextBlock. У него есть классы, которые позволяют вам макет. А затем распечатайте его как любое окно, или вы можете распечатать прямо из RichTextBlock.
У меня есть приложение, которое делает что-то похожее, для меня это еще сложнее, потому что печатная форма часто меняется.
Я получаю документ в виде Word, преобразую его в XAML с помощью надстройки wordplex, вносит некоторые изменения и легко создает формы.