This repository has been archived by the owner on Sep 25, 2023. It is now read-only.
/
MainWindow.xaml.cs
120 lines (104 loc) · 3.76 KB
/
MainWindow.xaml.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace LayoutAPISimpleExample
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public static bool customDrawImage;
public static bool customDrawText;
public static bool customDrawTable;
public static bool customDrawPicture;
public static bool customDrawTextBox;
public static bool customDrawSeparator;
public static bool customDrawPage;
private void Window_Loaded(object sender, RoutedEventArgs e)
{
richEdit.LoadDocument("Grimm.docx");
richEdit.DocumentLayout.DocumentFormatted += DocumentLayout_DocumentFormatted;
}
#region #DocumentFormatted
private void DocumentLayout_DocumentFormatted(object sender, EventArgs e)
{
richEdit.Dispatcher.BeginInvoke(new Action(() =>
{
int pageCount = richEdit.DocumentLayout.GetFormattedPageCount();
for (int i = 0; i < pageCount; i++)
{
MyDocumentLayoutVisitor visitor = new MyDocumentLayoutVisitor();
visitor.Visit(richEdit.DocumentLayout.GetPage(i));
}
}));
}
#endregion #DocumentFormatted
private void RichEdit_BeforePagePaint(object sender, DevExpress.XtraRichEdit.BeforePagePaintEventArgs e)
{
e.Painter = new MyLayoutPainter();
}
private void CheckBox_Checked(object sender, RoutedEventArgs e)
{
customDrawText = (textCheckBox.IsChecked == true) ? true : false;
richEdit.Refresh();
}
private void TableCheckBox_Checked(object sender, RoutedEventArgs e)
{
customDrawTable = (tableCheckBox.IsChecked == true) ? true : false;
richEdit.Refresh();
}
private void FloatingCheckBox_Checked(object sender, RoutedEventArgs e)
{
customDrawPicture = (floatingCheckBox.IsChecked == true) ? true : false;
richEdit.Refresh();
}
private void TextBoxCheckBox_Checked(object sender, RoutedEventArgs e)
{
customDrawTextBox = (textBoxCheckBox.IsChecked == true) ? true : false;
richEdit.Refresh();
}
private void InlineCheckBox_Checked(object sender, RoutedEventArgs e)
{
customDrawImage = (inlineCheckBox.IsChecked ==true) ? true : false;
richEdit.Refresh();
}
private void PageCheckBox_Checked(object sender, RoutedEventArgs e)
{
customDrawPage = (pageCheckBox.IsChecked == true) ? true : false;
richEdit.Refresh();
}
private void ListCheckBox_Checked(object sender, RoutedEventArgs e)
{
customDrawSeparator = (listCheckBox.IsChecked == true) ? true : false;
richEdit.Refresh();
}
private void CheckbtnCustomDraw_Checked(object sender, RoutedEventArgs e)
{
if (checkbtnCustomDraw.IsChecked == true)
{
richEdit.BeforePagePaint += RichEdit_BeforePagePaint;
}
else
{
richEdit.BeforePagePaint -= RichEdit_BeforePagePaint;
}
richEdit.Refresh();
}
}
}