Completed
Last Updated: 07 Oct 2014 10:40 by ADMIN
To reproduce:

Create a RadPageView and add these items:

RadPageView pageView = new RadPageView
{
    Parent = this,
    Dock = DockStyle.Fill,
    ViewMode = PageViewMode.Outlook
};

pageView.Pages.Add(new RadPageViewPage("Machines"));
pageView.Pages.Add(new RadPageViewPage("Users"));
pageView.Pages.Add(new RadPageViewPage("Software"));
pageView.Pages.Add(new RadPageViewPage("Queries"));
pageView.Pages.Add(new RadPageViewPage("Reports"));
pageView.Pages.Add(new RadPageViewPage("License Manager Servers"));

You will see that the Users and Reports items will be auto ellipsed.

Workaround:

Change the font of the item. Changing the style should be enough:

foreach (RadPageViewItem item in (pageView.ViewElement as RadPageViewOutlookElement).Items)
{
    item.AutoEllipsis = false;
}
Completed
Last Updated: 20 Oct 2014 14:18 by ADMIN
Workaround:
public Form1()
{
    InitializeComponent();
    this.radPageView1.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
}

public class CustomPageView : RadPageView
{
    public override string ThemeClassName  
    { 
        get 
        { 
            return typeof(RadPageView).FullName;  
        }
    }

    protected override RadPageViewElement CreateUI()
    {
        switch (this.ViewMode)
        {
            case PageViewMode.Strip:
                return new CustomRadPageViewStripElement();
            
            default:
                return base.CreateUI();
        }
    }
}

public class CustomRadPageViewStripElement : RadPageViewStripElement 
{
    public CustomRadPageViewStripElement()
    {
    }

    protected override Type ThemeEffectiveType     
    { 
        get    
        { 
            return typeof(RadPageViewStripElement);     
        }
    }

    protected override bool IsNextKey(Keys key)
    {
        if (this.RightToLeft)
        {
            if (key == Keys.Left)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        return base.IsNextKey(key);
    }

    protected override bool IsPreviousKey(Keys key)
    {
        if (this.RightToLeft)
        {
            if (key == Keys.Right)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        return base.IsPreviousKey(key);
    }
}
Completed
Last Updated: 09 Oct 2018 07:49 by Dimitar
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: 12 Oct 2018 09:29 by Dimitar
When you set the RightToLeft property to Yes, you will obtain incorrect layout. Please refer to the attached gif file.
Completed
Last Updated: 03 Dec 2018 08:33 by Dimitar
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.
1 2 3 4