Completed
Last Updated: 03 Aug 2021 13:39 by ADMIN
Release R3 2021
Declined
Last Updated: 30 Nov 2020 14:54 by ADMIN
Created by: Jan
Comments: 1
Category: PageView
Type: Feature Request
0
It would be great if there was also a None (ViewMode) for PageView. That means no tabs and only the container. This is especially useful if you use PageView for Single Page WinForms. Up to now I use to hide the tabs with CodeBehind.
Completed
Last Updated: 23 Jun 2020 13:32 by ADMIN
Release Q1 2014 SP1
ADMIN
Created by: Stefan
Comments: 7
Category: PageView
Type: Feature Request
16
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);
Completed
Last Updated: 28 Sep 2018 07:56 by Dimitar
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);
                    }
                }
            }
        }
Completed
Last Updated: 16 Aug 2017 08:14 by ADMIN
ADMIN
Created by: Boryana
Comments: 1
Category: PageView
Type: Feature Request
4
Show the focus cue of the selected tab in a StripView RadPageView.
Completed
Last Updated: 16 Aug 2017 08:14 by ADMIN
ADMIN
Created by: Alexander
Comments: 0
Category: PageView
Type: Feature Request
6
Add functionality to the control for selecting pages using access keys.
Unplanned
Last Updated: 15 Aug 2017 10:02 by Todor
Unplanned
Last Updated: 15 Aug 2017 10:02 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 2
Category: PageView
Type: Feature Request
1

			
Unplanned
Last Updated: 15 Aug 2017 09:45 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: PageView
Type: Feature Request
0

			
Unplanned
Last Updated: 15 Aug 2017 09:38 by Jesse Dyck
ADMIN
Created by: Anton
Comments: 2
Category: PageView
Type: Feature Request
5
RadPageView - Add support for Kinetic Scrolling.
Unplanned
Last Updated: 15 Aug 2017 09:36 by ADMIN
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.
Unplanned
Last Updated: 15 Aug 2017 09:23 by ADMIN
The solution could be similar to the behavior of the control's Outlook mode.
Unplanned
Last Updated: 15 Aug 2017 09:23 by ADMIN
ADD. RadPageView - add scrolling functionality in RadPageViewStackMode where the scroll buttons appear below and above the page items
Unplanned
Last Updated: 15 Aug 2017 09:23 by ADMIN
When RadPageView is in the ExplorerBar view, it should order its pages' bars opposite to the order of the Stack view.
Unplanned
Last Updated: 15 Aug 2017 09:23 by ADMIN
ADMIN
Created by: Nikolay
Comments: 0
Category: PageView
Type: Feature Request
1
A nice addition to RadPageView will the ability to scroll by pixel or by page.
Unplanned
Last Updated: 15 Aug 2017 09:23 by ADMIN
ADMIN
Created by: Nikolay
Comments: 0
Category: PageView
Type: Feature Request
1
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.
Completed
Last Updated: 16 Feb 2017 07:23 by ADMIN
Currently the pages are wrapped around, i.e. when one reaches the last pages and select next using the down arrow key the first page gets selected

Workaround: 
Public Class MyRadPageView
    Inherits RadPageView

    Public Overrides Property ThemeClassName As String
        Get
            Return GetType(RadPageView).FullName
        End Get
        Set(value As String)
            MyBase.ThemeClassName = value
        End Set
    End Property

    Protected Overrides Function CreateUI() As RadPageViewElement
        Select Case Me.ViewMode
            Case PageViewMode.Stack
                Return New RadPageViewStackElement()
            Case PageViewMode.Outlook
                Return New RadPageViewOutlookElement()
            Case PageViewMode.ExplorerBar
                Return New RadPageViewExplorerBarElement()
            Case PageViewMode.Backstage
                Return New MyRadPageViewBackstageElement()
            Case Else
                Return New RadPageViewStripElement()
        End Select
    End Function

End Class

Public Class MyRadPageViewBackstageElement
    Inherits RadPageViewBackstageElement

    Protected Overrides ReadOnly Property ThemeEffectiveType() As Type
        Get
            Return GetType(RadPageViewBackstageElement)
        End Get
    End Property

    Protected Overrides Function SelectNextItemCore(current As RadPageViewItem, forward As Boolean, wrap As Boolean) As Boolean
        Return MyBase.SelectNextItemCore(current, forward, False)
    End Function

    Protected Overrides Sub ProcessKeyDown(e As KeyEventArgs)
        If Me.IsNextKey(e.KeyCode) AndAlso Not Me.IsEditing Then
            Me.SelectNextItem()
        ElseIf Me.IsPreviousKey(e.KeyCode) AndAlso Not Me.IsEditing Then
            Me.SelectPreviousItem()
        ElseIf e.KeyCode = Keys.Home AndAlso Not Me.IsEditing Then
            Me.Owner.SelectedPage = Nothing
            Me.SetSelectedItem(Me.Items.First())
        ElseIf e.KeyCode = Keys.End AndAlso Not Me.IsEditing Then
            Me.Owner.SelectedPage = Nothing
            Me.SetSelectedItem(Me.Items.Last())
        ElseIf e.KeyCode = Keys.F2 Then
            BeginEdit()
        ElseIf e.KeyCode = Keys.Escape Then
            CancelEdit()
        ElseIf e.KeyCode = Keys.Enter AndAlso Me.IsEditing AndAlso Me.ActiveEditor.Validate() Then
            EndEdit()
        End If
    End Sub

End Class
Declined
Last Updated: 20 Jul 2016 09:12 by ADMIN
ADMIN
Created by: Boryana
Comments: 4
Category: PageView
Type: Feature Request
18
This feature request refers to RadPageView in Strip ViewMode, which supports a multi-line StripElement. Thus StripItems will appear in different lines.
Unplanned
Last Updated: 11 Jul 2016 12:03 by ADMIN
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);
1 2