dialog.Filter = "Special files|.*_FileNamePart.txt"Pasting an invalid range of dates in the RadDateRangePicker, for example, "ABC", raises an exception.
To work around this behavior, you could subscribe to the Loaded event of RadDateRangePicker and retrieve the DateRangeMaskedInput element via the visual tree helper methods. Then, subscribe to its ValueChanging event and check whether the NewValue property of the event arguments contains any letters or characters that are not valid. If it does, set the Handled property to True.
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.dateRangePicker.Loaded += DateRangePicker_Loaded;
}
private void DateRangePicker_Loaded(object sender, RoutedEventArgs e)
{
DateRangeMaskedInput dateRangeMaskedInput = this.dateRangePicker.FindChildByType<DateRangeMaskedInput>();
if (dateRangeMaskedInput != null)
{
dateRangeMaskedInput.ValueChanging += DateRangeMaskedInput_ValueChanging;
}
}
private void DateRangeMaskedInput_ValueChanging(object? sender, Telerik.Windows.Controls.MaskedInput.RadMaskedInputValueChangingEventArgs e)
{
if (e.NewValue.ToString().Any(char.IsLetter))
{
e.Handled = true;
}
}
}
When developing live (localization/resource) display language switching for SL5, the LocalizationManager should allow to update all localization strings applied through the ResourceManager. In SL5 it's not possible to listen to an attached dependency property for all dependency objects. Therefore it would help to have a way to know when the attached ResourceKey dependency property changes (and on which DependencyObject) in the LocalizationManager.
Currently, the only customization that can be performed is using HyperlinkToolTipFormatString property of RadRichTextBox, which sets the format for all hyperlinks in the document of the control. It would be nice if it were possible to be able to set different tooltips.
Font weight, size and other current editing style properties are not preserved when document layout is performed, for example in the following cases: - the document is in web layout mode and the controls is resized - scroll bar changes its visibility. Steps to reproduce: - Set RadRichTextBox to Web layout mode. - Type a word, select it and make it bold. - Press enter and type a word - Repeat the previous step until RadRichTextBox height is reached and scrollbar appear. - Type a word. Expected: The last word is bold. Actual: The last word is not bold.
This is not quite a valid PDF file scenario according to PDF file specification. However, we may try handling it in order to show the correct number of pages. When the kid is of type Pages, it should be added to the pages traversal recursion only the first time it is met.
When importing a document containing a single associated widget annotation merged into the field dictionary the field is skipped on import and an exception is thrown.
According to the PDF Specification: Field Dictionaries: Kids:
An array of indirect references to the immediate children of this field.
In a non-terminal field, the Kids array is required to refer to field dictionaries that are immediate descendants of this field. In a terminal field, the Kids array ordinarily must refer to one or more separate widget annotations that are associated with this field. However, if there is only one associated widget annotation, and its contents have been merged into the field dictionary, Kids must be omitted.
The selection a RadComboBox hosted in RadDataForm gets cleared on commit changes. This happens when the RadComboBox is added in the EditTemplate and its IsEditable is set to True. Committing the edit clears the TextBox of the ComboBox, which clears the selection.
To work this around, subscribe to the EditEnding event of RadDataForm and clear the DataContext of the RadComboBox element.
private void RadDataForm_EditEnding(object sender, Telerik.Windows.Controls.Data.DataForm.EditEndingEventArgs e)
{
var dataForm = (RadDataForm)sender;
var myField = dataForm.ChildrenOfType<DataFormDataField>().FirstOrDefault(df => df.Name == "myField");
if (myField != null)
{
var comboBox = (RadComboBox)myField.Content;
comboBox.DataContext = null;
}
}
TypeAccessException occurs in .NET Framework projects when using internal class for the data point models. The error doesn't occur in .NET 8 projects.
dsa
System.TypeAccessException: 'Attempt by method 'DynamicClass.Telerik_DynamicGetter_Argument(System.Object)' to access type 'WpfApp29.ChartPoint' failed.' at Telerik.Windows.Controls.Chart.dll!Telerik.Windows.Controls.ChartView.PropertyNameDataPointBinding.GetValue(object instance) Telerik.Windows.Controls.Chart.dll!Telerik.Windows.Controls.ChartView.ScatterSeriesDataSource.InitializeBinding(Telerik.Windows.Controls.ChartView.DataPointBindingEntry binding) Telerik.Windows.Controls.Chart.dll!Telerik.Windows.Controls.ChartView.ChartSeriesDataSource.GenerateDataPoint(object dataItem, int index) Telerik.Windows.Controls.Chart.dll!Telerik.Windows.Controls.ChartView.ChartSeriesDataSource.BindCore(System.Collections.IEnumerable source)
Telerik.Windows.Controls.Chart.dll!Telerik.Windows.Controls.ChartView.ChartSeriesDataSource.Bind(System.Collections.IEnumerable itemSource)
Telerik.Windows.Controls.Chart.dll!Telerik.Windows.Controls.ChartView.ChartSeriesDataSource.Rebind(System.Collections.IEnumerable oldSource, System.Collections.IEnumerable newSource, bool shouldUpdateSelectedPoints) Telerik.Windows.Controls.Chart.dll!Telerik.Windows.Controls.ChartView.ChartSeriesDataSource.ItemsSource.set(System.Collections.IEnumerable value) Telerik.Windows.Controls.Chart.dll!Telerik.Windows.Controls.ChartView.ChartSeries.InitDataBinding() Line Telerik.Windows.Controls.Chart.dll!Telerik.Windows.Controls.ChartView.ScatterPointSeries.InitDataBinding() Telerik.Windows.Controls.Chart.dll!Telerik.Windows.Controls.ChartView.ChartSeries.OnApplyTemplate() Telerik.Windows.Controls.Chart.dll!Telerik.Windows.Controls.ChartView.PointTemplateSeries.OnApplyTemplate()
To work this around, upgrade the target framework of the project to .NET 8. Or use the GenericDataPointBinding class for the binding properties of the series (XValueBinding, YValueBinding, etc.), instead of the default PropertyNameDataPointBinding.
NullReferenceException thrown on opening the CompletionListWindow when RadSyntaxEditor is hosted in a non-WPF application (usually WinForms) and there are no WPF Application and MainWindow initialized.
This can happen if the RadSyntaxEditor for WPF is hosted in a WinForms application. In this scenario the System.Windows.Application.Current and its MainWindow are not initialized, which is what the IntelliPrompt positioning logic relies on.
Exception details:
System.NullReferenceException: 'Object reference not set to an instance of an object.'
> Telerik.Windows.Controls.SyntaxEditor.dll!Telerik.Windows.Controls.SyntaxEditor.UI.IntelliPromptBase.SetPosition(System.Windows.Point pointInScreen) Line 452 C# Telerik.Windows.Controls.SyntaxEditor.dll!Telerik.Windows.Controls.SyntaxEditor.UI.IntelliPromptBase.SetPosition(System.Windows.Point pointInEditorPresenter, System.Windows.Point pointAboveTheCaret) Line 442 C# Telerik.Windows.Controls.SyntaxEditor.dll!Telerik.Windows.Controls.SyntaxEditor.UI.IntelliPromptBase.SetPositionInView() Line 480 C# Telerik.Windows.Controls.SyntaxEditor.dll!Telerik.Windows.Controls.SyntaxEditor.UI.IntelliPromptBase.InitializeIntellisense() Line 401 C# Telerik.Windows.Controls.SyntaxEditor.dll!Telerik.Windows.Controls.SyntaxEditor.UI.IntelliPromptBase.Show(Telerik.Windows.Controls.SyntaxEditor.UI.CaretPosition caretStartPosition, Telerik.Windows.Controls.SyntaxEditor.UI.CaretPosition caretEndPositions) Line 211 C#
Telerik.Windows.Controls.SyntaxEditor.dll!Telerik.Windows.Controls.SyntaxEditor.UI.IntelliPromptBase.Show() Line 182 C#To work this around, you can initialize a new WPF application and MainWindow and create a hidden HwndSource for the MainWindow. This should happen before showing the WPF content in the WinForms application's code.
public Form1()
{
InitializeComponent();
new System.Windows.Application();
System.Windows.Application.Current.MainWindow = new System.Windows.Window();
var parameters = new HwndSourceParameters("HiddenHost")
{
Width = 1, Height = 1,
WindowStyle = unchecked((int)0x80000000) // WS_POPUP | WS_EX_NOACTIVATE
};
var hwndSource = new HwndSource(parameters);
hwndSource.RootVisual = System.Windows.Application.Current.MainWindow;
// other code here
ElementHost host = new ElementHost { Dock = DockStyle.Fill };
host.Child = wpfControl
this.Controls.Add(host);
}
Pressing the Enter key when a field editor is focused will scroll the vertical scrollbar to the topmost offset. This is reproducible when the properties are grouped. Also, the RenderMode should be set to Flat.
To work this around, change the RenderMode setting to Hierarchical right before the Enter key logic is executed and then return it back to Flat after some time.
private void RadPropertyGrid_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
var propertyGrid = (RadPropertyGrid)sender;
var currentMode = propertyGrid1.RenderMode;
propertyGrid.RenderMode = RenderMode.Hierarchical;
Dispatcher.BeginInvoke(new Action(() =>
{
propertyGrid.RenderMode = currentMode;
}));
}