This repository has been archived by the owner on Oct 2, 2023. It is now read-only.
/
MainWindow.xaml.vb
170 lines (143 loc) · 5.91 KB
/
MainWindow.xaml.vb
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
Imports System
Imports System.Drawing
Imports System.Windows
Imports System.IO
Imports DevExpress.XtraRichEdit.API.Native
Imports DevExpress.XtraRichEdit.Utils
Imports DevExpress.Office.Utils
Namespace Walkthrough_Creating_Table
''' <summary>
''' Interaction logic for MainWindow.xaml
''' </summary>
Partial Public Class MainWindow
Inherits Window
Public Sub New()
InitializeComponent()
AddHandler richEditControl1.Loaded, AddressOf richEditControl1_Loaded
End Sub
Private Sub richEditControl1_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
CreateStyles()
End Sub
Private Sub btnCreateTable_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
CreateTable()
FillTable()
ApplyHeadingStyle()
End Sub
Private Sub CreateTable()
Dim doc As Document = richEditControl1.Document
' Clear out the document content
doc.Delete(richEditControl1.Document.Range)
' Set up header information
Dim pos As DocumentPosition = doc.Range.Start
Dim rng As DocumentRange = doc.InsertSingleLineText(pos, "Directory Information from C:\")
Dim cp_Header As CharacterProperties = doc.BeginUpdateCharacters(rng)
cp_Header.FontName = "Verdana"
cp_Header.FontSize = 16
doc.EndUpdateCharacters(cp_Header)
doc.Paragraphs.Insert(rng.End)
doc.Paragraphs.Insert(rng.End)
' Add the table
doc.Tables.Create(rng.End, 1, 3, AutoFitBehaviorType.AutoFitToWindow)
' Format the table
Dim tbl As Table = doc.Tables(0)
Try
'tbl.BeginUpdate();
Dim cp_Tbl As CharacterProperties = doc.BeginUpdateCharacters(tbl.Range)
cp_Tbl.FontSize = 8
cp_Tbl.FontName = "Verdana"
doc.EndUpdateCharacters(cp_Tbl)
' Insert header caption and format the columns
doc.InsertSingleLineText(tbl(0, 0).Range.Start, "Name")
doc.InsertSingleLineText(tbl(0, 1).Range.Start, "Size")
Dim pp_HeadingSize As ParagraphProperties = doc.BeginUpdateParagraphs(tbl(0, 1).Range)
pp_HeadingSize.Alignment = ParagraphAlignment.Right
doc.EndUpdateParagraphs(pp_HeadingSize)
doc.InsertSingleLineText(tbl(0, 2).Range.Start, "Modified")
Dim pp_HeadingModified As ParagraphProperties = doc.BeginUpdateParagraphs(tbl(0, 2).Range)
pp_HeadingModified.Alignment = ParagraphAlignment.Right
doc.EndUpdateParagraphs(pp_HeadingModified)
' Apply a style to the table
tbl.Style = doc.TableStyles("MyTableGridNumberEight")
' Specify right and left paddings equal to 0.08 inches for all cells in a table
tbl.RightPadding = Units.InchesToDocumentsF(0.08F)
tbl.LeftPadding = Units.InchesToDocumentsF(0.08F)
Finally
'tbl.EndUpdate();
End Try
End Sub
Private Sub CreateStyles()
' Define basic style
Dim tStyleNormal As TableStyle = richEditControl1.Document.TableStyles.CreateNew()
tStyleNormal.LineSpacingType = ParagraphLineSpacing.Single
tStyleNormal.FontName = "Verdana"
tStyleNormal.Alignment = ParagraphAlignment.Left
tStyleNormal.Name = "MyTableGridNormal"
richEditControl1.Document.TableStyles.Add(tStyleNormal)
' Define Grid Eight style
Dim tStyleGrid8 As TableStyle = richEditControl1.Document.TableStyles.CreateNew()
tStyleGrid8.Parent = tStyleNormal
Dim borders As TableBorders = tStyleGrid8.TableBorders
borders.Bottom.LineColor = Color.DarkBlue
borders.Bottom.LineStyle = TableBorderLineStyle.Single
borders.Bottom.LineThickness = 0.75F
borders.Left.LineColor = Color.DarkBlue
borders.Left.LineStyle = TableBorderLineStyle.Single
borders.Left.LineThickness = 0.75F
borders.Right.LineColor = Color.DarkBlue
borders.Right.LineStyle = TableBorderLineStyle.Single
borders.Right.LineThickness = 0.75F
borders.Top.LineColor = Color.DarkBlue
borders.Top.LineStyle = TableBorderLineStyle.Single
borders.Top.LineThickness = 0.75F
borders.InsideVerticalBorder.LineColor = Color.DarkBlue
borders.InsideVerticalBorder.LineStyle = TableBorderLineStyle.Single
borders.InsideVerticalBorder.LineThickness = 0.75F
borders.InsideHorizontalBorder.LineColor = Color.DarkBlue
borders.InsideHorizontalBorder.LineStyle = TableBorderLineStyle.Single
borders.InsideHorizontalBorder.LineThickness = 0.75F
tStyleGrid8.CellBackgroundColor = Color.Transparent
tStyleGrid8.Name = "MyTableGridNumberEight"
richEditControl1.Document.TableStyles.Add(tStyleGrid8)
' Define Headings paragraph style
Dim pStyleHeadings As ParagraphStyle = richEditControl1.Document.ParagraphStyles.CreateNew()
pStyleHeadings.Bold = True
pStyleHeadings.ForeColor = Color.White
pStyleHeadings.Name = "My Headings Style"
richEditControl1.Document.ParagraphStyles.Add(pStyleHeadings)
End Sub
Private Sub FillTable()
' Fill the table with data
Dim doc As Document = richEditControl1.Document
Dim tbl As Table = doc.Tables(0)
Dim di As New DirectoryInfo("C:\")
Try
tbl.BeginUpdate()
For Each fi As FileInfo In di.GetFiles()
Dim row As TableRow = tbl.Rows.Append()
Dim cell As TableCell = row.FirstCell
doc.InsertSingleLineText(cell.Range.Start, fi.Name)
doc.InsertSingleLineText(cell.Next.Range.Start, String.Format("{0:N0}", fi.Length))
doc.InsertSingleLineText(cell.Next.Next.Range.Start, String.Format("{0:g}", fi.LastWriteTime))
Next fi
Finally
tbl.EndUpdate()
End Try
End Sub
Private Sub ApplyHeadingStyle()
Dim doc As Document = richEditControl1.Document
Dim tbl As Table = doc.Tables(0)
For Each cell As TableCell In tbl.Rows.First.Cells
cell.BackgroundColor = Color.DarkBlue
Next cell
Dim pp_Headings As ParagraphProperties = doc.BeginUpdateParagraphs(tbl.Rows.First.Range)
pp_Headings.Style = doc.ParagraphStyles("My Headings Style")
doc.EndUpdateParagraphs(pp_Headings)
End Sub
Private Sub richEditControl1_DocumentLoaded(ByVal sender As Object, ByVal e As EventArgs)
CreateStyles()
End Sub
Private Sub richEditControl1_EmptyDocumentCreated(ByVal sender As Object, ByVal e As EventArgs)
CreateStyles()
End Sub
End Class
End Namespace