How to reproduce: enabled High DPI scaling and create a form as an MDI child with a RadDataEntry control in it Workaround: handle the Shown event of the MDI child and manually perform the scaling private void radButtonElement1_Click(object sender, EventArgs e) { var view = new RadForm1 { MdiParent = this }; view.Shown += View_Shown; view.Show(); } private void ScaleRadControls(Control c) { foreach (var item in c.Controls) { Control control = item as Control; if (control == null) { continue; } this.mi.Invoke(control, new object[] { this.FormElement.DpiScaleFactor, BoundsSpecified.All }); ScaleRadControls(control); } } MethodInfo mi; private void View_Shown(object sender, EventArgs e) { this.mi = typeof(Control).GetMethod("ScaleControl", BindingFlags.Instance | BindingFlags.NonPublic, null, new Type[] { typeof(SizeF), typeof(BoundsSpecified) }, null); RadForm1 v = sender as RadForm1; if (v != null) { ScaleRadControls(v.radDataEntry1.PanelContainer); } }
To reproduce: please refer to the attached sample project and gif file. Workaround: use screentips: https://docs.telerik.com/devtools/winforms/telerik-presentation-framework/tooltips-and-screentips/screen-tips
Workaround: this.radChat1.ChatElement.InputTextBox.TextBoxItem.TextBoxControl.Multiline = true; this.radChat1.ChatElement.InputTextBox.ButtonsStack.Children.Remove(this.radChat1.ChatElement.ShowToolbarButtonElement); this.radChat1.ChatElement.InputTextBox.ButtonsStack.Children.Remove(this.radChat1.ChatElement.SendButtonElement); StackLayoutElement stack = new StackLayoutElement(); stack.MinSize = new Size(0, 60); this.radChat1.ChatElement.InputTextBox.Parent.Children.Add(stack); this.radChat1.ChatElement.InputTextBox.Parent.Children.Remove(this.radChat1.ChatElement.InputTextBox); stack.StretchHorizontally = true; stack.Orientation = Orientation.Horizontal; stack.Children.Add(this.radChat1.ChatElement.InputTextBox); stack.Children.Add(this.radChat1.ChatElement.ShowToolbarButtonElement); stack.Children.Add(this.radChat1.ChatElement.SendButtonElement); this.radChat1.ChatElement.ShowToolbarButtonElement.StretchHorizontally = false; this.radChat1.ChatElement.SendButtonElement.StretchHorizontally = false;
To reproduce:
-Open the FileExplorer example.
- Resize the panel (see attached).
Use attached to reproduce.
Workaround:
public RadForm1()
1. Set HDPI on your monitor (for example 150%)
2. Set RadDataEntry data source in RunTime
You will see that RadDataEntry hosted controls are not scaled correctly.
Note that there is a related problem if the data source is set in design time. Controls themselves will be scaled correctly, however, text box hosted control's High will not be scaled correctly.
Workaround:
You can subscribe to ItemInitializing event before you set the DataSource and proceed by scaling RadDataEntry hosted controls manually as shown in the following code snipped.
private void radButton1_Click(object sender, EventArgs e)
{
this.radDataEntry1.ItemInitializing += RadDataEntry1_ItemInitializing;
this.radDataEntry1.ItemDefaultSize = new Size(200, 26);
radDataEntry1.DataSource = new Employee
{
FirstName = "Sarah",
LastName = "Blake",
Occupation = "Supplied Manager",
StartingDate = new DateTime(2005, 04, 12),
IsMarried = true,
Salary = 3500,
Gender = Gender.Female
};
}
private void RadDataEntry1_ItemInitializing(object sender, ItemInitializingEventArgs e)
{
if (this.radDataEntry1.RootElement.DpiScaleFactor.Width != 1)
{
foreach (Control control in e.Panel.Controls)
{
control.Scale(this.radDataEntry1.RootElement.DpiScaleFactor);
}
}
}
1. Set the DPI of your main monitor to 150% and the DPI of your secondary monitor to 100%.
2. Start your main form containing RadDataEntry on your secondary monitor.
You will see that that hosted controls inside RadDataEntry are not scaled correctly.
Workaround:
Start your main form on your secondary monitor inside OnShown event.
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
this.Location = new Point(-800, 100);
}
I have a form which contains TreeView control. I need to convert it to RadTreeView. So I replaced TreeView control with RadTreeView and TreeNode with RadTreeNode in the code. I found that the events in both are different, so tried to replace the events with similar events in RadTree.
Following are the events that I have replaced in my code :
1.
Private Sub TreeView1_AfterExpand(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles tvMain.AfterExpand
Replaced by -
Private Sub TreeView1_AfterExpand(ByVal sender As Object, ByVal e As Telerik.WinControls.UI.RadTreeViewEventArgs) Handles tvMain.NodeExpandedChanged
2.
Private Sub TreeView1_AfterCollapse(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles tvMain.AfterCollapse
Replaced by -
Private Sub TreeView1_AfterCollapse(ByVal sender As Object, ByVal e As Telerik.WinControls.UI.RadTreeViewEventArgs) Handles tvMain.NodeExpandedChanged
and included Expanded flag to check if it is expand or collapse.
Here, I noticed unwanted firing of this replaced event when compared to the old event, but I handled it using the Expanded flag.
3.
Private Sub tvMain_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles tvMain.AfterSelect
Replaced by -
Private Sub tvMain_AfterSelect(ByVal sender As System.Object, ByVal e As Telerik.WinControls.UI.RadTreeViewEventArgs) Handles tvMain.SelectedNodesChanged
This event gets fired twice while clicking on a node.
My main issues are,
Hi Dess,
I have encountered some other issue here. text of the button is not displaying in this case.
I have set DrawText property as true, UseCompatibleTextRendering as true and TextImageRelation as true. still the text is not displaying only the image is showing. Could you please go thruogh the same project again
attaching the previous link https://feedback.telerik.com/winforms/1480197-event-not-firing-in-commandbar-button-in-radcommandbar-button
Thanks
Binshidha
When we have start position set to center screen:
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
RadForm does not calculate the correct location of the form on HDPI devices.