I just completed an evaluation of the RadPdfProcessing library for our medical practices. Unfortunately, we are not yet able to use this library for our application. We need to be able to annotate patient visit reports when visit notes require amendments or when we appeal billing decisions. We do this frequently and we need a way to automate this tedious and time consuming process. While the vision for the RadPdfViewer (ref. Unifying the Power of PdfViewer & PdfProcessing: Edit a PDF with our Newest Secret (6/12/2020)) was promising, there are still some issues for us. Following is a list of areas where we would like to see improvements:
1. We need the ability to add notes (like when editing is enabled in the AddDocumentContent_WPF sample application). But also be able to control font, font size, bolding, underlining, and highlighting and text color. Also we need to be able to go back and edit text and text formatting after new text is added and the text editing window closes. This is not yet possible. Ideally, this text also needs to allow multiple text fragments (Run's) where each text fragment can have its own formatting (bolding, color, etc.).
2. Each note needs to be in an optional bubble or box with an optional line or arrow to the highlighted (or strike-through) text in the original document. It would also be helpful if the bubble could be reshaped and moved to a more optimum location while maintaining the connecting line to the associated highlighted text. Automatically positioning the bubble when it is first created in adjacent white space is also desired.
4. We would like the above functionality to be implemented via a right click context menu for selected text in the original document. A command like "strike-through text and open note would be ideal".
5. If possible we also would like to pre-edit a pdf file as a RadFixedDocument and perform some or all of the above operations before the document is displayed in the RadPdfViewer. To do this we will need to be able to search for text in a given location in the pdf, select that text and then perform the desired operations (described above in 3. and 4.). This is needed for a majority of the changes that we need to make, that is, in sections of the document that we know from experience always require the same annotations. We see this functionality being integrated with AI enabled processes that are able to find and prepare billing appeals and assist with patient record amendments.
Respectfully, Bill Goforth, Professional Imaging LLC, Medical Systems Development, 360-528-1844
Currently, on drag/drop of the layout the RadLayoutControl is creating new LayoutControlGroup when needed. This happens in a private static method and the developer doesn't have access to this operation.
Add a virtual method that allows you to override the creation of the LayoutControlGroup. This way a custom LayoutControlGroup implementation can be provided or the group created by default can be adjusted manually.
Hi,
I would like to report that Z-index have unexpected values when RadDiagramContainerShape are used.
Please watch video first, my remarks points to the video attached to the ticket.
1. Currently there is a possibility that Container A can be hidden by Container B and this is fine.(~11sec of movie)
2. However then i will add Container C to Container A and then drag Container B to overlaps Container A it overlaps only Container A and does not overlaps Container C which for end-user could be very confusing, why Container C is visible at that time.(~20-30 sec of movie)
The problem gets more complicated when i drop Container B to overlaps Container A but without adding Container B as a child of Container A.
In that way it looks that children of Container A are children of Container B
3. When i will add new container "Header" to Container B and then overlaps Container A and Container C then its even more mixed up(~ 30-50 sec of movie)
4. When i will add new container "Header" to Container A and Z-index are somehow refreshed and then in magic way Container_C now overlaps "Header" container from Container B(~58sec of movie)
I would expect:
Fix calculation of Z-index in that way if Container B overlaps Container A it means it overlaps as well it's children. Currently you have flat hierarchy of VMI containers which leads to such Z-index issues.
OR
Expose possibility to override your internal methods which calculates the Z-index.
TypeNameParserException is printed in the Output pane of Visual Studio, when RadNavigationView is initialized. The exception message is:
MS.Internal.Xaml.Parser.GenericTypeNameParser.TypeNameParserException: 'Prefix 'helpers' does not map to a namespace.'
This happens because of a known issue in the Visual Studio designer, which is discussed here.
This issue can be safely ignored. It won't cause issues in the control at runtime.
Hi,
I would like to report that automatic generate of connection point for Bezier connection is wrongly generated when link is attached to Gliding Connector.
Connection point is generated at the position where link is attached to shape. I think for such use-case you should generate connection point taking into account angle of link in relate to shape and generate connection point a bit moved. When connection point is generated at attach position it makes that the "arrow" of link have wrong angle.
I'm attaching video and your sample solution with my modifications to easier reproduction.
Best regards,
BH
After using Direct2D in ChartView, zoom in/zoom out/pan , finally shrink back to the original size. After many iterations, it is possible that the Scatter spline will be shifted, if don't use Direct2D or use the Net Framework,Such problems do not arise.
Please check the attachment.
The borders around the color visuals (RadColorPaletteViewItem) in the palette view are shown at the wrong visuals when the MainPaletteItemsSource and MainPaletteColumnsCount properties are changed at runtime.
To work this around, re-adjust the PositionState values of the RadColorPaletteViewItems. For example:
private void ChangePalette()
{
this.colorSelector.MainPaletteItemsSource = MyGetSourceMethod();
this.colorSelector.MainPaletteColumnsCount = 10;
UpdatePaletteItems();
}
private void UpdatePaletteItems()
{
var mainPalette = colorSelector.ChildrenOfType<RadColorPaletteView>().First(x => x.Name == "MainPalette");
var paletteItems = mainPalette.ChildrenOfType<RadColorPaletteViewItem>();
var paletteItemsCount = paletteItems.Count();
var columnsCount = mainPalette.PaletteColumnsCount;
var orientation = mainPalette.PaletteOrientation;
for (int i = 0; i < paletteItemsCount; i++)
{
var paletteItem = paletteItems.ElementAt(i);
if ((columnsCount == paletteItemsCount) || (paletteItemsCount / columnsCount == 0))
{
paletteItem.PositionState = PositionState.Single;
return;
}
if (orientation == Orientation.Horizontal)
{
if (i < columnsCount)
{
paletteItem.PositionState = PositionState.Top;
}
else if (i > (paletteItemsCount - columnsCount - 1))
{
paletteItem.PositionState = PositionState.Bottom;
}
else
{
paletteItem.PositionState = PositionState.Middle;
}
}
else
{
if (i % (paletteItemsCount / columnsCount) == 0)
{
paletteItem.PositionState = PositionState.Top;
}
else if (((i + 1) % (paletteItemsCount / columnsCount)) == 0)
{
paletteItem.PositionState = PositionState.Bottom;
}
else
{
paletteItem.PositionState = PositionState.Middle;
}
}
}
}
Currently, the drop down of RadComboBox contains only the RadComboBoxItems and the Clear Selection button. Add new content presenter that allows you to include extra visuals, like buttons or text.
The feature is similar to the AdditionalContent of RadTabControl.
A memory leak occurs in the RadTreeView control used for the table of contents in the RadPdfViewerNavigationPane, when changing the DocumentSource of RadPdfViewer at runtime.
To work this around, you can get the RadTreeView used by RadPdfViewerNavigationPane and manually clear its internal item storage before assigning the new DocumentSource.
private void ReloadDocument()
{
var navigationPane = this.pdfViewerNavigationPane;
var navigationPaneTreeView = navigationPane.FindChildByType<RadTreeView>();
if (navigationPaneTreeView != null)
{
object itemStorage = typeof(RadTreeView)
.GetProperty("ItemStorage", BindingFlags.Instance | BindingFlags.NonPublic)
.GetValue(navigationPaneTreeView);
MethodInfo itemStorageClearMethod = itemStorage.GetType().GetMethod("Clear", BindingFlags.Instance | BindingFlags.NonPublic);
itemStorageClearMethod.Invoke(itemStorage, null);
}
this.DocumentSource = theNewDocumentSource;
}
Hello,
I want to report a bug with text color in textbox and presumably in some other controls. When the textbox is edited, then the color is correctly black:
Telerik: Windows 11 settings textBox:
But when the textbox loses focus, it changes the color to gray, which is hard to read and looks like disabled:
Telerik: Windows 11 settings textBox:
Thanks
private void RadTreeListView_Filtering(object sender, Telerik.Windows.Controls.GridView.GridViewFilteringEventArgs e)
{
var treeListView = sender as RadTreeListView;
var internalColumns = treeListView.GetType().GetProperty("InternalColumns", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(treeListView);
internalColumns.GetType().GetProperty("ColumnWidthsCalculationPending", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue(internalColumns, true);
}
private void RadTreeListView_Filtered(object sender, Telerik.Windows.Controls.GridView.GridViewFilteredEventArgs e)
{
Dispatcher.BeginInvoke(new Action(() =>
{
var treeListView = sender as RadTreeListView;
var internalColumns = treeListView.GetType().GetProperty("InternalColumns", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(treeListView);
internalColumns.GetType().GetProperty("ColumnWidthsCalculationPending", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue(internalColumns, false);
}), System.Windows.Threading.DispatcherPriority.Loaded);
}