I have created a RadForm in a sample winforms project and dropped a RadPageView control on the form. Then created three pages and dropped a user control on the page 1 and page 2. Now when I navigate to page 3 from page and page 2 then Visual Studio gets not responding and crashes later.
I am recently downloaded the trial version of Telerik Winforms(2024.2.514) and found this issue with User controls. Previous versions also have same issue.
Recording of the issue as well as sample project is attached.
(this.radPageView1.ViewElement as RadPageViewStripElement).AllowEdit = true;
(this.radPageView1.ViewElement as RadPageViewStripElement).NewItemVisibility = StripViewNewItemVisibility.End;
To reproduce: please refer to the attached sample project and gif file. The purpose is to select the last added page. However, the multi-line tabs are not ordered correctly at all compared to the TabControl.
A possible workaround here is to make the panel parent of the buttons visible.
RadPageViewStripElement element = this.radPageView1.ViewElement as RadPageViewStripElement;
element.ItemContainer.ButtonsPanel.DrawFill = true;
element.ItemContainer.ButtonsPanel.NumberOfColors = 1;
How to reproduce: check the attached project: Workaround: when the form is opened in the designer make sure that all pages are made visible at least ones so the controls are initialized, before attempting to access collection editors via properties window
At the moment the items in a similar setup can be navigated using the arrow keys
The layout on a monitor with 100%:
After moving the form to a monitor with higher than 100% DPI scaling, e.g. 175% or greater:
Once you switch to the first page which contains exactly the same UserControl, the layout is not correct:
How to reproduce:
public Form1()
{
InitializeComponent();
this.radPageView1.ItemSizeMode = Telerik.WinControls.UI.PageViewItemSizeMode.EqualSize;
this.radPageView1.ItemSize = new Size(50, 20);
}
Add functionality for resizing the tabs of RadPageView pages (resizing the RadPageViewPageItem). Resolution : This functionality can be achieved with the MinSize/MaxSize properties. For example: radPageViewPage1.Item.MinSize = new Size(150, 30);
I attached a video and the code I used. I am trying to remove and add pageviews. (I would hide them it i knew how)
When I add the pageview back in while the hamburger menu is closed it somewhat expands the tabs. I would like it to leave it closed
When you have RadPageView within a RadDock only the selected page is visible and its content is shown. When you select another page it is blank.
Workaround:
For Each page As RadPageViewPage In Me.rpvMain.PagesTo reproduce: - Open attached project and add a lot of pages. - Close all pages - The GDI object count increases. Workaround: GC.Collect(); GC.WaitForPendingFinalizers(); GC.WaitForFullGCApproach(); GC.WaitForFullGCComplete(); GC.Collect();
To reproduce: add a RadPageView in NavigationView and set the following property: Dim view As RadPageViewNavigationViewElement = TryCast(Me.RadPageView1.ViewElement, RadPageViewNavigationViewElement) view.CollapsedPaneWidth = 300 The expected result is that the navigation view default's width is set to 300 when loading. However, it is adjusted when you expand and collapse the hamburger.
When you set the RightToLeft property to Yes, you will obtain incorrect layout. Please refer to the attached gif file.
Workaround: public class CustomPageView : RadPageView { public override string ThemeClassName { get { return typeof(RadPageView).FullName; } } protected override RadPageViewElement CreateUI() { if (this.ViewMode == PageViewMode.NavigationView) { return new CustomRadPageViewNavigationViewElement(); } return base.CreateUI(); } } public class CustomRadPageViewNavigationViewElement : RadPageViewNavigationViewElement { protected override Type ThemeEffectiveType { get { return typeof(RadPageViewNavigationViewElement); } } public override void Expand() { if (!this.IsCollapsed) { return; } FieldInfo pi = typeof(RadPageViewNavigationViewElement).GetField("isCollapsed", BindingFlags.NonPublic | BindingFlags.Instance); pi.SetValue(this, false); this.ItemContainer.Visibility = ElementVisibility.Visible; NavigationViewDisplayModes mode = this.GetEffectiveDisplayMode(this.Size.Width); if (mode == NavigationViewDisplayModes.Expanded) { this.ItemContainer.MinSize = new Size(this.ExpandedPaneWidth, 0); } else { this.PopupStack.Children.Insert(0, this.HamburgerButton); if (!this.PopupStack.Children.Contains(this.ItemContainer)) { this.PopupStack.Children.Add(this.ItemContainer); } this.HamburgerButton.Alignment = this.RightToLeft ? ContentAlignment.TopRight : ContentAlignment.TopLeft; this.HamburgerButton.StretchHorizontally = true; this.ItemContainer.ItemLayout.SetValue(RadPageViewStripElement.StripAlignmentProperty, StripViewAlignment.Right); this.ItemContainer.ResetValue(RadElement.MinSizeProperty, ValueResetFlags.Animation); this.ItemContainer.MinSize = new Size(this.ExpandedPaneWidth, 0); this.ItemContainer.MaxSize = Size.Empty; foreach (RadPageViewItem item in this.Items) { item.DrawText = true; } if (this.Popup.ElementTree.RootElement.ElementState != ElementState.Loaded) { Size size = new Size(this.ExpandedPaneWidth, (int)this.DesiredSize.Height); this.Popup.LoadElementTree(size); } ApplyThemeToPopup(this.ElementTree, this.Popup); this.Popup.Size = new Size(this.ExpandedPaneWidth, (int)this.DesiredSize.Height); this.Popup.DropDownAnimationDirection = this.RightToLeft ? RadDirection.Left : RadDirection.Right; this.Popup.HorizontalPopupAlignment = this.RightToLeft ? HorizontalPopupAlignment.RightToRight : HorizontalPopupAlignment.LeftToLeft; this.Popup.VerticalPopupAlignment = VerticalPopupAlignment.TopToBottom; this.Popup.RootElement.BackColor = this.BackColor; this.Popup.Show(this.PointToScreen(this.RightToLeft ? new Point(this.Bounds.Right, this.Bounds.Top) : new Point(this.Bounds.Left, this.Bounds.Top))); } } public override void Collapse() { if (this.IsCollapsed) { return; } FieldInfo pi = typeof(RadPageViewNavigationViewElement).GetField("isCollapsed", BindingFlags.NonPublic | BindingFlags.Instance); pi.SetValue(this, true); foreach (RadPageViewItem item in this.Items) { item.DrawText = false; } NavigationViewDisplayModes mode = this.GetEffectiveDisplayMode(this.Size.Width); if (mode == NavigationViewDisplayModes.Expanded) { this.ItemContainer.MinSize = new Size(this.CollapsedPaneWidth, 0); } else { FieldInfo fi = typeof(RadPageViewNavigationViewElement).GetField("programmaticallyClosingPopup", BindingFlags.NonPublic | BindingFlags.Instance); fi.SetValue(this, true); this.Popup.ClosePopup(RadPopupCloseReason.Mouse); this.HamburgerButton.StretchHorizontally = false; fi = typeof(RadPageViewNavigationViewElement).GetField("programmaticallyClosingPopup", BindingFlags.NonPublic | BindingFlags.Instance); fi.SetValue(this, false); if (mode == NavigationViewDisplayModes.Compact) { this.ItemContainer.MinSize = new Size(this.CollapsedPaneWidth, 0); this.ItemContainer.MaxSize = new Size(this.CollapsedPaneWidth, 0); if (!this.Children.Contains(this.ItemContainer)) { this.Popup.RootElement.ResetValue(RadItem.BackColorProperty, ValueResetFlags.Local); this.Children.Insert(0, this.ItemContainer); } } if (!this.Children.Contains(this.HamburgerButton)) { this.HamburgerButton.ResetValue(AlignmentProperty, ValueResetFlags.Local); this.Children.Add(this.HamburgerButton); } } } }