To reproduce: 1. Add a RadPageView with no pages and set its Dock property to Fill. 2. Set the ViewMode property to ExplorerBar at design time. 3. Use the following code snippet: private void AddOutputPage(int index) { string title = "Test-Page " + index; RadPageViewPage page = new RadPageViewPage(title); this.radPageView1.Pages.Add(page); } private void Form1_Load(object sender, EventArgs e) { for (int i = 0; i < 20; ++i) AddOutputPage(i); } As a result the current page header at the top of the RadPageView is not displayed until you resize the pageview.
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); } }
To reproduce: 1.Add a RadPageView with several pages. 2.Set the ViewElement.AllowEdit property to true. 3.Use the following code: public Form1() { InitializeComponent(); radPageView1.ViewElement.AllowEdit = true; radPageView1.ViewElement.EditorInitialized += ViewElement_EditorInitialized; } private void ViewElement_EditorInitialized(object sender, RadPageViewEditorEventArgs e) { radPageView1.ViewElement.ActiveEditor.Validating -= ActiveEditor_Validating; radPageView1.ViewElement.ActiveEditor.Validating += ActiveEditor_Validating; radPageView1.ViewElement.ActiveEditor.Validated -= ActiveEditor_Validated; radPageView1.ViewElement.ActiveEditor.Validated += ActiveEditor_Validated; radPageView1.ViewElement.ActiveEditor.ValidationError -= ActiveEditor_ValidationError; radPageView1.ViewElement.ActiveEditor.ValidationError += ActiveEditor_ValidationError; } private void ActiveEditor_Validating(object sender, CancelEventArgs e) { RadPageViewElement.PageViewItemTextEditor editor = sender as RadPageViewElement.PageViewItemTextEditor; if (editor != null && radPageView1.ViewElement.ActiveEditor.Value == string.Empty) { e.Cancel = true; } } private void ActiveEditor_ValidationError(object sender, ValidationErrorEventArgs e) { RadMessageBox.Show("Page label can't be empty!", "Error", MessageBoxButtons.OK, RadMessageIcon.Error); } private void ActiveEditor_Validated(object sender, EventArgs e) { RadMessageBox.Show("Page label has been successfully updated!", "Information", MessageBoxButtons.OK, RadMessageIcon.Info); } If you change a tab title and do not press Enter, but click outside the pageview, the respective events for validation are not fired. Workaround: private void ViewElement_EditorInitialized(object sender, RadPageViewEditorEventArgs e) { RadPageViewElement.PageViewItemTextEditor textEditor = e.ActiveEditor as RadPageViewElement.PageViewItemTextEditor; RadPageViewElement.PageViewItemTextEditorElement element = textEditor.EditorElement as RadPageViewElement.PageViewItemTextEditorElement; element.PropertyChanged += element_PropertyChanged; } private void element_PropertyChanged(object sender, PropertyChangedEventArgs e) { RadPageViewElement.PageViewItemTextEditorElement element = sender as RadPageViewElement.PageViewItemTextEditorElement; if (e.PropertyName == "ContainsFocus"&& !element.ContainsFocus) { radPageView1.ViewElement.ActiveEditor.Validate(); } }
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; }
To reproduce: 1. Add RadPageView with several pages 2. Set the Text property of page to "Payers & Frequencies" this.radPageViewPage2.Text = "Payers & Frequencies"; RadPageViewStripElement strip = (RadPageViewStripElement)this.radPageView1.ViewElement; strip.StripButtons = StripViewButtons.All; 3. Run the project and open the ItemListMenu(available pages) and you will see that name of page is "Payers _Frequencies" Workaround: 1. Subscribe to ItemListMenuDisplaying event and set UseMnemonic property to false: void radPageView1_ItemListMenuDisplaying(object sender, RadPageViewMenuDisplayingEventArgs e) { foreach (RadMenuItem listMenuItem in e.Items) { TextPrimitive textPrimitive = listMenuItem.Layout.TextPanel.Children[0] as TextPrimitive; textPrimitive.UseMnemonic = false; } }
To reproduce: - Add RadPageView with a two pages to a blank form, each page should contain a RadGridView. - Populate the gids with some data. - Start a gotomeeting and show your screen. - Launch the application or start debugging. - Add a column to the first tab page (not sure if the location or placement matters) - Click the tab header for the second tab page to try to navigate to it - Nothing will happen. Workaround: - Change focus to another application. - The test app will now update.
To reproduce: - Implement the example from this page http://www.telerik.com/help/winforms/pageview-how-to-editing-page-tabs.html. - Set the page text to empty string and click on another page. Workaround: subscribe to the editor's element RadPropertyChanging event: void element_RadPropertyChanging(object sender, RadPropertyChangingEventArgs args) { if (args.Property == RadElement.ContainsFocusProperty) { if (!(bool)args.NewValue) { args.Cancel = true; } } }
To reproduce: Add a page to RadPageView with ViewMode set to ExplorerBar. Add controls so that the scrollbar appears.Set AutoScroll to true. Now if you tab through the controls you will see visual glitches and incorrect behavior.
RadPageView - In BackstageView the tool tip of item close button is showing if you set ShowItemCloseButton property to true. Work Around: set ShowItemCloseButton property to false.
RadPageView - Add support for Kinetic Scrolling.
Let's say that you have RadPageView in ExplorerBar mode and the Content Size mode is set to AutoSizeToBestFit. Dock two buttons in the content area to top. Run the app and you will see that the bottom of the second button is cut in some themes. This is because these themes has a border set to the content area. The border is taken into consideration by the layout and the content is cut even throught there is space for it. This happens with Windows7, Office2010Black and other themes.
Workaround: set text manually on ToolTipTextNeeded event. private void Form1_Load(object sender, EventArgs e) { this.radPageView1.ToolTipTextNeeded += new Telerik.WinControls.ToolTipTextNeededEventHandler(radPageView1_ToolTipTextNeeded); } void radPageView1_ToolTipTextNeeded(object sender, Telerik.WinControls.ToolTipTextNeededEventArgs e) { RadPageViewStripItem item = sender as RadPageViewStripItem; if (item != null) { e.ToolTipText = item.Text; } }
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.
Steps to reproduce: 1. Add a form with RadPageView on it 2. Add RadPageViewPage 3. In the designer file there will be the following line: // TODO: Code generation for '' failed because of Exception 'Invalid Primitive Type: System.IntPtr. Consider using CodeObjectCreateExpression.'.
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.
When RadPageView is in Backstage mode, one can only navigate between the tabs in the same group using the arrow keys.
Currently, when trying to replace the item, exception is thrown.