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: 03 Aug 2021 13:39 by ADMIN
Release R3 2021
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 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
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);
Completed
Last Updated: 11 Nov 2015 11:08 by ADMIN
To reproduce: 
1. Drag and drop RadPageView on the form
2. Select the control and open a smart tag 
3. You will see that the 'Dock in parent container' option is not added 
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.
Completed
Last Updated: 15 Feb 2014 10:52 by ADMIN
There should be such property which is available in the properties window. The property should get/set the default selected page for a RadPageView when it is loaded for the first time. Also, this property should not be affected by changing the selected page in the Visual Studio designer.
Completed
Last Updated: 21 Jun 2012 03:59 by ADMIN
Currently, when trying to replace the item, exception is thrown.
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.
Declined
Last Updated: 20 Feb 2014 15:23 by ADMIN
ADMIN
Created by: Boryana
Comments: 1
Category: PageView
Type: Feature Request
7
Add a Visible property to RadPageView Pages for all modes
Completed
Last Updated: 10 Feb 2012 04:19 by ADMIN
Provide an easier way to change the size of the tabs panel of RadPageView in Backstage mode at design time.
Completed
Last Updated: 20 Oct 2014 11:47 by ADMIN
IMPROVE. RadPageView - in ExplorerBar mode, add a method which will scroll the item into view and the item will be on the top on the control. Currently, the ScrollToItem method, scrolls to the item and whenever it finds it the scrolling is stopped. 
Alternatively, add a method which will ensure that the item and its content are is visible.

Resolution: 
Add the ScrollToControl method. Please take a look at the following code snippet how to use it: 
RadPageViewExplorerBarElement view = radPageView1.ViewElement as RadPageViewExplorerBarElement;            
view.ScrollToControl(control);
Completed
Last Updated: 23 Feb 2015 08:02 by ADMIN
ADD. RadPageView - allow RadPageViewItems to accept other RadElements. Currently, they are not arranged.
Completed
Last Updated: 05 Oct 2011 09:08 by Jesse Dyck
There should be a method called BeginEdit of the item, which puts it in edit mode. Also, when the user pressed F2 the item should begin editing. The latter should be controlled via AllowEdit property.
1 2