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