Completed
Last Updated: 27 Aug 2019 12:37 by ADMIN
Release R3 2019
Created by: Konstantin
Comments: 2
Category: Chat
Type: Feature Request
2
It would be very convenient to scroll to a specific message when a lot of messages are available.
Completed
Last Updated: 19 Feb 2019 14:07 by ADMIN
This will handle the scenario of having different image sets for different DPI.
Completed
Last Updated: 19 Feb 2019 15:58 by ADMIN
Created by: Frank
Comments: 2
Category: UI for WinForms
Type: Feature Request
3
I need to tab though the form fields in RadPdfViewer instead of having to click in each one
Completed
Last Updated: 05 Feb 2019 15:11 by ADMIN

Until released the text can be cleared this way:

GridSearchCellElement searchCell = this.radGridView1.TableElement.FindDescendant<GridSearchCellElement>();
if (searchCell != null)
{
    searchCell.SearchTextBox.Text = "";
}

Completed
Last Updated: 21 Feb 2019 05:42 by ADMIN
This was working this way in 2017 then we changer it so all rows are affected. 

Bot modes should be supported. 

Completed
Last Updated: 05 Feb 2019 15:48 by ADMIN
Hide Item option in the context menu should not be present for those items. We should also consider a cancellable ItemHiding event. The custom control below handles this scenario:

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

    protected override void InitializeDropDownMenu()
    {
        FieldInfo hideMenuItemFi = typeof(RadLayoutControl).GetField("hideMenuItem", BindingFlags.Instance | BindingFlags.NonPublic);
        RadMenuItem hideMenuItem = hideMenuItemFi.GetValue(this) as RadMenuItem;

        if (hideMenuItem == null)
        {
            hideMenuItemFi.SetValue(this, new RadMenuItem(LayoutControlLocalizationProvider.CurrentProvider.GetLocalizedString(LayoutControlStringId.ContextMenuCustomize)));
            hideMenuItem = hideMenuItemFi.GetValue(this) as RadMenuItem;
        }

        hideMenuItem.Click += customizeItem_Click;

        RadDropDownMenu menu = typeof(RadLayoutControl).GetField("dropDownMenu", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(this) as RadDropDownMenu;
        menu.Items.Add(hideMenuItem);
    }

    private void customizeItem_Click(object sender, EventArgs e)
    {
        if (this.AllowCustomize)
        {
            this.ShowCustomizeMenuDialog();
        }
    }

    private void ShowCustomizeMenuDialog()
    {
        if (this.CustomizeDialog.Visible)
        {
            return;
        }

        this.ShowCustomDragOverlay();
        this.CustomizeDialog.Owner = this.FindForm();
        ThemeResolutionService.ApplyThemeToControlTree(this.CustomizeDialog, this.ThemeName);

        if (this.CustomizeDialog.Location == Point.Empty)
        {
            this.CustomizeDialog.Location = GetInitialCustomizeDialogLocation();
        }

        this.CustomizeDialog.Show();
        this.CustomizeDialog.RightToLeft = this.RightToLeft;
    }

    private void ShowCustomDragOverlay()
    {
        FieldInfo dragOverlayFi = typeof(RadLayoutControl).GetField("dragOverlay", BindingFlags.Instance | BindingFlags.NonPublic);
        LayoutControlDraggableOverlay dragOverlay = dragOverlayFi.GetValue(this) as LayoutControlDraggableOverlay;

        if (dragOverlay == null)
        {
            dragOverlayFi.SetValue(this, new CustomLayoutControlDraggableOverlay(this));
            dragOverlay = dragOverlayFi.GetValue(this) as LayoutControlDraggableOverlay;
        }

        dragOverlay.ThemeName = this.ThemeName;
        dragOverlay.UpdatePreview();

        dragOverlay.Dock = DockStyle.Fill;
        ((RadLayoutControlControlCollection)this.Controls).AddInternal(dragOverlay);
        dragOverlay.Visible = true;
        dragOverlay.BringToFront();
        this.PerformLayout();
        this.Refresh();
    }

}

public class CustomLayoutControlDraggableOverlay : LayoutControlDraggableOverlay
{
    private RadMenuItem hideMenuItem;


    public CustomLayoutControlDraggableOverlay(RadLayoutControl owner) 
        : base(owner)
    {
        RadDropDownMenu contextMenu = typeof(LayoutControlDraggableOverlay).GetField("contextMenu", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(this) as RadDropDownMenu;
        contextMenu.Items.Clear();

        this.hideMenuItem = new RadMenuItem(LayoutControlLocalizationProvider.CurrentProvider.GetLocalizedString(LayoutControlStringId.ContextMenuHideItem));
        this.hideMenuItem.Text = LayoutControlLocalizationProvider.CurrentProvider.GetLocalizedString(LayoutControlStringId.ContextMenuHideItem);
        this.hideMenuItem.Click += hideMenuItem_Click;
        contextMenu.Items.Add(hideMenuItem);
        contextMenu.DropDownOpening += ContextMenu_DropDownOpening;
    }

    private void ContextMenu_DropDownOpening(object sender, CancelEventArgs e)
    {
        if (this.SelectedItems.Count == 1 && this.SelectedItems[0].Name == "layoutControlItem4")
        {
            e.Cancel = true;
        }
    }

    private void hideMenuItem_Click(object sender, EventArgs e)
    {
        foreach (DraggableLayoutControlItem item in this.SelectedItems)
        {
            if (item.Name == "layoutControlItem4")
            {
                continue;
            }

            ((CustomRadLayoutControl)this.Owner).HideItem(item.AssociatedItem);
        }

        this.UpdatePreview();
    }
}
Completed
Last Updated: 23 Nov 2018 14:51 by Dimitar
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
Comments: 0
Category: GanttView
Type: Feature Request
1
When you edit a link, e.g. change its end item, there is no appropriate event to handle this situation. The Links.CollectionChanged event is not fired. It would be nice to have a LinkChanged event which will be fired when a link is modified similar to the ItemChanged event for the tasks.

Workaround:
            foreach (GanttViewLinkDataItem link in this.radGanttView1.Links)
            {
                link.PropertyChanged += link_PropertyChanged;
            }

        private void link_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            if (e.PropertyName == "EndItem")
            {
            }
            
        }
Completed
Last Updated: 19 Nov 2018 10:26 by ADMIN
ADMIN
Created by: Hristo
Comments: 1
Category: SplitContainer
Type: Feature Request
1
The end user should be able to specify what Cursor to be used while resizing a panel.

Currently this can be achieved using the custom control below:
public class MyRadSplitContainer : RadSplitContainer
{
    private bool isResizing;
 
    public override string ThemeClassName
    {
        get
        {
            return typeof(RadSplitContainer).FullName;
        }
    }
 
    protected override void OnMouseDown(MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left && this.ContentRectangle.Contains(e.Location))
        {
            SplitterElement splitter = GetSplitterElementAtPoint(e.Location);
            if (splitter != null && !splitter.Fixed)
            {
                this.isResizing = true;
            }
 
            base.OnMouseDown(e);
        }
    }
 
    protected override void OnMouseUp(MouseEventArgs e)
    {
        base.OnMouseUp(e);
 
        this.isResizing = false;
    }
 
    public override Cursor Cursor
    {
        get
        {
            Cursor cursor = base.Cursor;
            if (this.isResizing && cursor == Cursors.SizeWE)
            {
                cursor = Cursors.VSplit;
            }
            else if (this.isResizing && cursor == Cursors.SizeNS)
            {
                cursor = Cursors.HSplit;
            }
 
            return cursor;
        }
        set
        {
            if (value == Cursors.VSplit)
            {
                value = Cursors.SizeWE;
            }
            else if (value == Cursors.HSplit)
            {
                value = Cursors.SizeNS;
            }
 
            base.Cursor = value;
        }
    }
}
Completed
Last Updated: 11 Apr 2019 08:17 by ADMIN
Release R2 2019 (LIB 2019.1.415)
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: 19 Sep 2018 14:16 by Dimitar
When you have  a property that is bool? or ToggleState, it would be good to have three-state functionality for the PropertyGridCheckBoxItemElement.
Completed
Last Updated: 28 Aug 2018 13:44 by ADMIN
I can't think of a reason to have text in a panel, however every time one is added from the toolbox it has text set as the control name. I would love this to default to blank.
Completed
Last Updated: 06 Sep 2018 08:18 by Dimitar
Completed
Last Updated: 11 Sep 2018 12:02 by Dimitar
One should be able to set the display text of each field (like header text in RadGridView). Very rarely does the displayed column header match the field name exactly.

Workaround:  https://www.telerik.com/forums/property-display-name#nZuLg2ytd0CXhz-4Q-6urQ

Completed
Last Updated: 28 Aug 2018 14:02 by Dimitar
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
Comments: 0
Category: GridView
Type: Feature Request
1
Add a new property AllowSelection/EnableSelection in order to control whether the use can select a cell/row.

Workaround:

Private Sub RadForm1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Me.ProductsTableAdapter.Fill(Me.NwindDataSet.Products)
     
    Me.RadGridView1.CurrentRow = Nothing
    AddHandler Me.RadGridView1.SelectionChanging, AddressOf Grid_SelectionChanging
    AddHandler Me.RadGridView1.CurrentRowChanging, AddressOf Grid_CurrentRowChanging
End Sub
 
Private Sub Grid_SelectionChanging(sender As Object, e As Telerik.WinControls.UI.GridViewSelectionCancelEventArgs)
    e.Cancel = True
End Sub
 
Private Sub Grid_CurrentRowChanging(sender As Object, e As Telerik.WinControls.UI.CurrentRowChangingEventArgs)
    e.Cancel = True
End Sub
Completed
Last Updated: 21 Sep 2018 07:39 by ADMIN
Added in the R3 2018 release: https://docs.telerik.com/devtools/winforms/forms-and-dialogs/form-converter
Completed
Last Updated: 28 Aug 2018 12:33 by Dimitar
ADMIN
Created by: Hristo
Comments: 0
Category: ChartView
Type: Feature Request
0

			
Completed
Last Updated: 09 Jul 2018 10:05 by Dimitar
ADMIN
Created by: Hristo
Comments: 0
Category: UI for WinForms
Type: Feature Request
0

			
Completed
Last Updated: 11 Sep 2018 06:50 by Dimitar
ADMIN
Created by: Telerik Admin
Comments: 0
Category: UI Framework
Type: Feature Request
1
Is it possible to add a Hamburger Menu to the Telerik UI for WinForms?
like: https://docs.microsoft.com/en-us/windows/uwp/design/controls-and-patterns/navigationview
Completed
Last Updated: 25 Jul 2018 06:53 by ADMIN