Hi every body...
In my application I have to make an InlineUIContainer (inserted within a table) as ReadOnly. To achieve this requirement I tried ReadOnlyRangeStart and ReadOnlyRangeEnd (as shown in the attached code). I also tried to InsertReadOnlyRange around the table using DocumentPosition (not shown in the attached code). In both cases the following error is thrown:
"An unhandled exception of type 'System.StackOverflowException' occurred in mscorlib.dll"
Is not possible to make InlineUIContainer as ReadOnly? If so; is there any workaround?
Any Help Will Be Greatly Appreciated...
Note: the cause why I used TextBlocks instead of just adding new span to the paragraph; is that I have to make Text and image tightly grouped together; so that if they come across end of the page (and there is no enough space to them), then they move together to a new page. If there is a better solution to this requirement, it will be welcomed.
Private
Function
GetCenterManagerTable(
ByVal
mainDocument
As
RadDocument,
ByVal
FMMSContext
As
FMMS.BusinessObjects.Models.FMMSEntities)
As
Table
Dim
_table
As
New
Table
With
{.Borders =
New
TableBorders(
New
Model.Border(1, BorderStyle.
Single
, Colors.Black)),
.FlowDirection = GetFlowDirection(),
.PreferredWidth =
New
TableWidthUnit(TableWidthUnitType.Fixed, mainDocument.SectionDefaultPageSize.Width - 115),
.HorizontalAlignment = RadHorizontalAlignment.Center,
.Tag = RequestTypes.WritingDraft}
Dim
_row
As
New
TableRow
Dim
_cellReviewer
As
New
TableCell
With
{.TextAlignment = RadTextAlignment.Center,
.Tag = RequestTypes.WritingDraft}
Dim
_cellManager
As
New
TableCell
With
{.TextAlignment = RadTextAlignment.Center,
.Tag = Departments.CenterManager,
.PreferredWidth =
New
TableWidthUnit(TableWidthUnitType.Fixed, 350)}
Dim
_paragReviewer
As
New
Paragraph
With
{.SpacingAfter = 0, .LineSpacingType = LineSpacingType.AtLeast, .LineSpacing = 0}
Dim
_paragManager
As
New
Paragraph
With
{.SpacingAfter = 0, .LineSpacingType = LineSpacingType.AtLeast, .LineSpacing = 0}
_table.Rows.Add(_row)
_row.Cells.Add(_cellReviewer)
_row.Cells.Add(_cellManager)
_cellReviewer.Blocks.Add(_paragReviewer)
_cellManager.Blocks.Add(_paragManager)
'Manager
Dim
ManagerSignatureUIContainer
As
New
InlineUIContainer
With
{.Width = 349, .Height = 200}
Dim
stckMain
As
New
StackPanel
With
{.Height = 150}
stckMain.Measure(
New
Size(350, 200))
Dim
txbName
As
New
TextBlock
With
{.Text = ManagerData.Name, .FontFamily = PtHeadingFamily, .FontSize = 16, .TextWrapping = TextWrapping.Wrap, .HorizontalAlignment = HorizontalAlignment.Center}
Dim
imgManagerSignature
As
New
Image
With
{.Name =
"imgManagerSignature"
, .Width = 120, .Stretch = Stretch.Uniform}
imgManagerSignature.Measure(
New
Size(120, 30))
Dim
txbSignatureDate
As
New
TextBlock
With
{.Name =
"txbSignatureDate"
, .FontFamily =
New
FontFamily(
"Times New Roman"
), .FontSize = 8, .HorizontalAlignment = HorizontalAlignment.Center}
Dim
txbJob
As
New
TextBlock
With
{.Text = ManagerData.Job, .FontFamily = PtHeadingFamily, .FontSize = 16, .TextWrapping = TextWrapping.Wrap, .HorizontalAlignment = HorizontalAlignment.Center}
stckMain.Children.Add(txbName)
stckMain.Children.Add(imgManagerSignature)
stckMain.Children.Add(txbSignatureDate)
stckMain.Children.Add(txbJob)
ManagerSignatureUIContainer.UiElement = stckMain
Dim
rangeStart
As
New
ReadOnlyRangeStart()
Dim
rangeEnd
As
New
ReadOnlyRangeEnd()
rangeEnd.PairWithStart(rangeStart)
_paragManager.Inlines.Add(rangeStart)
_paragManager.Inlines.Add(ManagerSignatureUIContainer)
_paragManager.Inlines.Add(rangeEnd)
Return
_table
End
Function