Hi,
We have an issue when using RightToLeft property of the RadCollapsiblePanel Control.
When the HeaderText ends with non-alphanumeric characters, on display, these characters are moved to the beginning of the title (possibly with a replacement of the closing characters in opening characters - such as the parenthesis).
I've attached a little sample of the issue.
Thanks for your help.
Regards
Fabrice MABIT
fmabit@proginov.com
The fix in 3Q18 removed the exposed Text property of the RadPanel control. Setting the text to blank should not have removed the Text property from the control.
To reproduce: 1. Add a RadCollapsiblePanel and change the back color or border of the container via the Edit UI elements dialog. 2. Save the changes and run the project. You will notice that the style is reset and the changes are not preserved. Workaround: Customize the style at runtime. The following help article gives you information about the internal elements structure of the RadCollapsiblePanel: https://docs.telerik.com/devtools/winforms/panels-and-labels/collapsiblepanel/structure
Use attached to reproduce and for workaround.
Create a new TelerikWinForms project. Add a collapsible panel. Set the border colour via the "Edit UI Elements" button in the task menu, under BorderPrimitive.ForeColor. The border will appear to change in design view, but will not change at runtime, with the appropriate line not being added to the form .Designer.cs file at all. This was tested with the Windows 8 theme applied. Workaround: ((Telerik.WinControls.Primitives.BorderPrimitive)(this.radCollapsiblePanel1.ControlsContainer.GetChildAt(0).GetChildAt(1))).ForeColor = Color.White;
Workaround: use CollapsiblePanelAnimationType.Reveal
Use attached to reproduce. - Open the form at design time, the border is correctly set to gray color. - Start the application, the border changes to blue. Workaround: radCollapsiblePanel1.ControlsContainer.PanelElement.Border.ForeColor = Color.FromArgb(171, 171, 171); or ThemeResolutionService.ApplicationThemeName = "Office2013Dark";
Use attached to reproduce. Workaround: - Use RadForm it explicitly handles the controls scaling. - Make sure that the following of the user controls are set like this: this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
The issue reproduces if the panels are collapsed before auto hiding the windows. When the window is later displayed the collapsed panels cannot be expanded. Check the attached video: Workaround: Cache the old bounds. public partial class Form1 : Form { public Form1() { InitializeComponent(); this.radDock1.AutoHideWindowDisplaying += RadDock1_AutoHideWindowDisplaying; this.radDock1.AutoHideWindowDisplayed += RadDock1_AutoHideWindowDisplayed; this.radCollapsiblePanel1.PanelContainer.BackColor = Color.LightGreen; } Rectangle cache; private void RadDock1_AutoHideWindowDisplayed(object sender, DockWindowEventArgs e) { this.radCollapsiblePanel1.OwnerBoundsCache = this.cache; } private void RadDock1_AutoHideWindowDisplaying(object sender, Telerik.WinControls.UI.Docking.AutoHideWindowDisplayingEventArgs e) { this.cache = this.radCollapsiblePanel1.OwnerBoundsCache; } }
My current theme is windows10. In two images I demonstrate the problem.
How to reproduce: check the attached video Workaround: use the attached custom theme
To reproduce: 1. Place label on form. 2. Set text alignment property to middle center. 3. Change label property auto-size to false. 4. Resize control (width wise). 5. Text still sits on left side of the label and not the middle of the label. The text is properly aligned at runtime.
To reproduce: Set at design or at run time the TextAlignment property of RadLabel to TopLeft. nothing happens. Workaround: Set the TextAlignment to MiddleLeft and then to TopLeft: this.radLabel1.TextAlignment = ContentAlignment.Middleleft; this.radLabel1.TextAlignment = ContentAlignment.TopLeft;
Please refer to the attached gif file and sample project. The keyboard navigation is enabled for the items in RadCheckedListBox. However, if you press "N" (without pressing ALT) it doesn't select an item starting with "N" but selects the text box since the RadLabel's mnemonic key is "N". Workaround: Public Class MyLabel Inherits RadLabel Protected Overrides Function ProcessMnemonic(charCode As Char) As Boolean If Not (Control.ModifierKeys & Keys.Alt) <> Keys.Alt Then Return False End If Return MyBase.ProcessMnemonic(charCode) End Function End Class
Workaround: set UseCompatibleTextRendering to true.
To reproduce: please refer to the attached gif file: 1. Drop RadCollapsiblePanel from the toolbox on to the windows form. 2. Click on the form and press Ctrl+Z to undo the change 3. Observe that an error dialog popped up saying "Index and length must refer to a location within the string. Parameter name: length"
How to reproduce: check the attached project Workaround: use a custom RadPanel control: public class MyRadPanel : RadPanel { protected override bool ProcessMnemonic(char charCode) { if (!Control.IsMnemonic(charCode, this.Text)) { return false; } if (!this.Enabled || !this.Visible) { return false; } Control parentInternal = this.Parent; if (parentInternal != null) { if (parentInternal.SelectNextControl(this, true, false, true, false) && !parentInternal.ContainsFocus) { parentInternal.Focus(); } } return true; } }
Please refer to the atatched sample project and screenshot. Workaround: You can manipulate the text by inserting new lines in order to simulate the desired wrapping functionality when the auto ellipsis functionality is enabled.
To reproduce: - Show the border of a RadLabel. - Apply ScaleTransform to the root element.
How to reproduce: check the attached project Workaround: resize the size of the hosting RadPanel private void radCollapsiblePanel_Expanding(object sender, CancelEventArgs e) { this.radPanel1.Size = new Size(this.radPanel1.Size.Width, this.radPanel1.Size.Height - 1); } private void radCollapsiblePanel_Expanded(object sender, EventArgs e) { this.radPanel1.Size = new Size(this.radPanel1.Size.Width, this.radPanel1.Size.Height + 1); }