RadPageView - Add support for Kinetic Scrolling.
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.
It appears that when the contents of the RadPageViewPage is changed its height stays the same. fig1 shows the height before content is modified fig2 shows the height after content is modified(pressing ‘Next’ button), fig3 shows the height after one of the RadPageViewPage tabs is clicked, clicking 'Next' after that keeps the same height. It appears that if a tab is clicked the RadPageView resizes itself. So how can I make the RadPageView resize itself to its content programmatically. Workaround: increase and decrease the Width of RadPageView to force the layout. rpv.Width += 1; rpv.Width -= 1;
Feature missing in the Outlook mode of the PageView control is the ability to move a page up or down (i.e., change their order). This is accomplished with an additional menu item called "Navigation Pane Options", and a checked list box with all available pages and up/down buttons. Related to this would be a way to serialize the PageView content and order to XML.
Under specific circumstances and in Windows 2008 Server environment the RadTabStrip internally used in RadDock does not get a proper size. Workaround: bool performLayout = false; protected override void OnSizeChanged(EventArgs e) { base.OnSizeChanged(e); if (this.WindowState == FormWindowState.Minimized) { this.performLayout = true; } else if (this.performLayout) { //reset padding to force bounds update this.Padding = new Padding(1); this.Padding = Padding.Empty; this.performLayout = false; } } Basically, you need to override the OnSizeChanged method of the main form and first set and then reset its Padding when the it goes from Minimized to another state. This will trigger that internal layout mechanisms of our controls and you will get the RadGridView shown as expected.
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.
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();
Workaround: this.radPageViewPage1.Item.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
The solution could be similar to the behavior of the control's Outlook mode.
ADD. RadPageView - add scrolling functionality in RadPageViewStackMode where the scroll buttons appear below and above the page items
When RadPageView is in the ExplorerBar view, it should order its pages' bars opposite to the order of the Stack view.
A nice addition to RadPageView will the ability to scroll by pixel or by page.
User should be able to define the position of the strip buttons. For example, the ItemList buttons should be situated on the left side of RadPageView while the scroll buttons should be on the right side.
To reproduce: use the following code snippet: public RadForm1() { InitializeComponent(); this.radPageView1.Pages.Add(new RadPageViewPage("My page")); RadPageViewStripElement stripElement = this.radPageView1.ViewElement as RadPageViewStripElement; stripElement.StripButtons = StripViewButtons.ItemList; this.radPageView1.ItemListMenuDisplaying += radPageView1_ItemListMenuDisplaying; } private void radPageView1_ItemListMenuDisplaying(object sender, RadPageViewMenuDisplayingEventArgs e) { e.Items.Clear(); RadMenuItem item = new RadMenuItem("aaa"); e.Items.Add(item); } Click the overflow button to open the drop down and select the item. When you open the overflow popup again you will notice that the item is duplicated although you clear the items in the ItemListMenuDisplaying event. Workaround: dispose the item when it is clicked private void radPageView1_ItemListMenuDisplaying(object sender, RadPageViewMenuDisplayingEventArgs e) { e.Items.Clear(); RadMenuItem item = new RadMenuItem("aaa"); item.Click += item_Click; e.Items.Add(item); } private void item_Click(object sender, EventArgs e) { RadMenuItem item = sender as RadMenuItem; if (item != null) { item.Click -= item_Click; item.Dispose(); } }
To reproduce: for (int i = 0; i < 20; i++) { this.radPageView1.Pages.Add(new RadPageViewPage("Page" + i)); } this.radPageView1.ViewMode = PageViewMode.Backstage; Only a few of the pages are visible and the user is not allowed to scroll to see the rest of them. Workaround: 1. Make use of the strip buttons: RadPageViewBackstageElement el = this.radPageView1.ViewElement as RadPageViewBackstageElement; el.ItemContainer.ButtonsPanel.Visibility = ElementVisibility.Visible; 2. Place the control in RadScrollablePanel RadScrollablePanel scrollablePanel = new RadScrollablePanel(); scrollablePanel.Dock = DockStyle.Fill; this.Controls.Add(scrollablePanel); RadPageView pageView = new RadPageView(); pageView.ViewMode = PageViewMode.Backstage; scrollablePanel.Controls.Add(pageView); for (int i = 0; i < 50; i++) { pageView.Pages.Add(new RadPageViewPage("Page " + i.ToString())); } pageView.Size = new System.Drawing.Size(1000,2500);