Approved
Last Updated: 07 Dec 2018 12:45 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
Comments: 0
Category: PdfViewer
Type: Feature Request
1

			
New
Last Updated: 07 Dec 2018 12:21 by ADMIN
How to reproduce: check the attached file

Workaround: create a custom drag-drop service 
public class CustomListControlDragDropService : ListControlDragDropService
{
    private RadListDataItem draggedItem;

    public CustomListControlDragDropService(RadListElement owner) 
        : base(owner)
    {
    }

    protected override void PerformStart()
    {
        base.PerformStart();

        RadListVisualItem draggedVisualItem = this.Context as RadListVisualItem;
        if (draggedVisualItem != null)
        {
            this.draggedItem = draggedVisualItem.Data;
        }
    }

    protected override void PerformStop()
    {
        base.PerformStop();

        this.DisposeHint();
        this.draggedItem = null;
    }

    protected override void OnPreviewDragDropCore(RadListElement targetList, RadListVisualItem targetElement)
    {
        int index = targetList.Items.Count - 1;
        if (targetElement != null)
        {
            index = targetList.Items.IndexOf(targetElement.Data);
        }
        
        if (this.draggedItem.Owner != targetList)
        {
            index++;
        }
        RadListElement dragedListView = this.draggedItem.Owner;

        IList<RadListDataItem> itemsToMove = new List<RadListDataItem>(dragedListView.SelectedItems.Count);

        foreach (RadListDataItem item in dragedListView.SelectedItems)
        {
            itemsToMove.Add(item);
        }

        dragedListView.BeginUpdate();
        foreach (RadListDataItem item in itemsToMove)
        {
            item.Selected =
                item.Active = false;
            dragedListView.Items.Remove(item);
        }

        dragedListView.EndUpdate();
        targetList.BeginUpdate();
        foreach (RadListDataItem item in itemsToMove)
        {
            if (index > targetList.Items.Count)
            {
                targetList.Items.Add(item);
            }
            else
            {
                targetList.Items.Insert(index, item);
            }

            item.Selected = item.Active = true;

            index++;
        }

        targetList.EndUpdate();
    }
}
New
Last Updated: 07 Dec 2018 11:15 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
Comments: 0
Category: UI Framework
Type: Bug Report
0
After revamping the documentation for the Telerik UI for WinForms product, the following problems occurred:

1. Search for a specific class or method in the search box in the following site: https://docs.telerik.com/devtools/winforms/introduction. Select one of the results referring to the API documentation. As a result you will be navigated to the main page of the API reference instead of to the respective class or method. Refer to the Problem1.gif file. It seems that the search results from the API reference return old links for the previous API link pattern.

2. The search box in https://docs.telerik.com/devtools/winforms/api/ is significantly lagging while typing. We should consider performing the search operation after pressing Enter and not with each keystroke. Please refer to the Problem2.gif file.

3.  When you scroll the navigation view on the left side to a certain position and select an article, the vertical scrollbar sometimes gets reset to the top position and you have to scroll back.  (Note that this problem is not reproduced each time).
New
Last Updated: 07 Dec 2018 09:32 by ADMIN
To reproduce: please run the attached sample project and follow the steps illustrated in the attached gif file:

Scrolling to a newly added row does not work when inner templates are visible.

Add data to the inner templates of several rows near the bottom using the button.
Expand these inner templates so they are all visible.
Scroll back up to the top.
Add a new item to the outer grid normally.
The table will jump to where it things the new item is but will fall short, instead scrolling to a location in one of the inner templates.
Workaround:

        private void RadGridView1_UserAddedRow(object sender, GridViewRowEventArgs e)
        {
            foreach (GridViewRowInfo    row in this.radGridView1.Rows)
            {
                if (row.IsExpanded)
                {
                    row.IsExpanded = false;
                    row.IsExpanded = true;
                }
            }
        }
Under Review
Last Updated: 06 Dec 2018 13:55 by ADMIN
To reproduce: Add a RadMultiColumnCombobox to the form, set the DropDownStyle property to DropDownList and clear the text. You will notice that the height of the control is not bigger than 5 px.

Workaround: set MinimumSize 

Me.RadMultiColumnComboBox1.MinimumSize = New Size(200, 23)

Approved
Last Updated: 06 Dec 2018 07:15 by ADMIN
To reproduce:
- Set the StartPosition to CenterScreen
- Show the form on a HDPI monitor

Workaround:
var form = new RadForm();

float dpiX, dpiY;
Graphics graphics = this.CreateGraphics();
dpiX = graphics.DpiX /100;
dpiY = graphics.DpiY /100;

form.StartPosition = FormStartPosition.Manual;
var monSize = Screen.FromControl(this).Bounds;
var centerX = (monSize.Width / 2) - (form.DesktopBounds.Width * dpiX / 2);
var centerY = (monSize.Height / 2) - (form.DesktopBounds.Height * dpiY/ 2);
form.Location = new Point((int)centerX,(int) centerY);
form.Show();


New
Last Updated: 05 Dec 2018 07:31 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();
    }
}
Approved
Last Updated: 05 Dec 2018 07:29 by ADMIN
Add a property that can control whether a table row is allowed to break across pages or not.
New
Last Updated: 04 Dec 2018 15:19 by gowtama
Created by: gowtama
Comments: 0
Category: UI Framework
Type: Feature Request
0
I know it is not an easy task.

I love the new vb.net form conversion to telerik form .

Could you please make one from vb6 to telerik form conversion. I know I am asking for a lot but I am pretty sure your sales is going to skyrocket with this feature.

Please think about it.
New
Last Updated: 04 Dec 2018 09:19 by ADMIN
To reproduce: Initially, the row at index 0 is white, when you move it to index 5 it is still white until you hover it:

        public RadForm1()
        {
            InitializeComponent();

            this.radGridView1.Columns.Add("Data");
            for (int i = 0; i < 100; i++)
            {
                this.radGridView1.Rows.Add(i);
            }
            this.radGridView1.EnableAlternatingRowColor = true;
            this.radGridView1.TableElement.AlternatingRowColor = Color.Aqua;
        }
        
        private void radButton1_Click(object sender, EventArgs e)
        {
            this.radGridView1.Rows.Move(0, 5);
        }

Workaround:

        private void radButton1_Click(object sender, EventArgs e)
        {
            this.radGridView1.Rows.Move(0, 5);
            this.radGridView1.Rows[5].InvalidateRow();
        }
Completed
Last Updated: 03 Dec 2018 17:23 by Robert
I have a RadDropDownList that contains 3 items.

The following actions cause the application to hang:

1) I click left mouse button on the triangle, and drop down list items are shown
2) On the keyboard, i press ALT +SPACE
3) On the keyboard, i press arrow down

Solution with simple form where the bug is present attached.

Greetings
Robert Kowalczyk
Completed
Last Updated: 03 Dec 2018 17:22 by Dimitar
Completed
Last Updated: 03 Dec 2018 17:21 by Dimitar
How to reproduce: check the attached (video radscheduler-selection-incorrect.gif)
 public RadForm1()
 {
     InitializeComponent();

     Appointment appointment = new Appointment(DateTime.Today.AddHours(13), TimeSpan.FromHours(1), "Test Appointment");
     this.radScheduler1.Appointments.Add(appointment);

     for (int i = 0; i < 25; i++)
     {
         appointment = new Appointment(DateTime.Today.AddHours(24), TimeSpan.FromHours(1), "AllDay: " + i);
         appointment.AllDay = true;
         this.radScheduler1.Appointments.Add(appointment);
     }
     this.radScheduler1.AllowAppointmentsMultiSelect = true;
 }

Workaround: create a custom input behavior

this.radScheduler1.SchedulerInputBehavior = new CustomSchedulerInputBehavior(this.radScheduler1);

public class CustomSchedulerInputBehavior : SchedulerInputBehavior
{
    public CustomSchedulerInputBehavior(RadScheduler scheduler) 
        : base(scheduler)
    {
    }

    public override bool HandleMouseWheel(MouseEventArgs args)
    {
        if (!this.Scheduler.AllowMouseWheelSupport)
            return false;

        bool scrolled = false;

        if (this.Scheduler.SelectionBehavior.IsAllDayAreaSelection || this.IsLastSelectedAppointmentAllDay(this.Scheduler.SelectionBehavior.SelectedAppointments))
        {
            if (this.Scheduler.GroupType == GroupType.Resource)
            {
                SchedulerDayViewGroupedByResourceElement grouped = this.Scheduler.ViewElement as SchedulerDayViewGroupedByResourceElement;
                IList<SchedulerDayViewElement> childViews = grouped != null ? grouped.GetChildViewElements() : null;
                if (childViews != null && childViews.Count > 0)
                {
                    RadScrollBarElement scroll = childViews[childViews.Count - 1].AllDayHeaderElement.ScrollBar;
                    if (scroll.Visibility != ElementVisibility.Collapsed)
                    {
                        int newValue = scroll.Value - childViews[childViews.Count - 1].AllDayHeaderElement.HeaderHeight * Math.Sign(args.Delta);
                        newValue = Math.Max(Math.Min(newValue, scroll.Maximum - scroll.LargeChange + 1), scroll.Minimum);
                        scroll.Value = newValue;
                        scrolled = true;
                    }
                }
            }
            else
            {
                SchedulerDayViewElement dayView = this.Scheduler.ViewElement as SchedulerDayViewElement;
                RadScrollBarElement scroll = dayView != null ? dayView.AllDayHeaderElement.ScrollBar : null;

                if (scroll != null && scroll.Visibility != ElementVisibility.Collapsed)
                {
                    int newValue = scroll.Value - dayView.AllDayHeaderElement.HeaderHeight * Math.Sign(args.Delta);
                    newValue = Math.Max(Math.Min(newValue, scroll.Maximum - scroll.LargeChange + 1), scroll.Minimum);
                    scroll.Value = newValue;
                    scrolled = true;
                }
            }
        }

        if (scrolled)
        {
            return false;
        }

        if (args.Delta > 0)
        {
            this.Scheduler.ViewElement.Scroll(true);
        }
        else
        {
            this.Scheduler.ViewElement.Scroll(false);
        }
        return false;
    }

    private bool IsLastSelectedAppointmentAllDay(ReadOnlyCollection<IEvent> selectedAppointments)
    {
        if (selectedAppointments.Count > 0)
        {
            return selectedAppointments[selectedAppointments.Count - 1].AllDay;
        }

        return false;
    }

}

Completed
Last Updated: 03 Dec 2018 14:52 by Dimitar
To reproduce: if you set the TableElement.RowHeight property, it affects the header row as well, but not all cells. As a result the header row overlaps the new row.

Workaround: set the TableElement.HeaderRowHeight as well.

  this.radVirtualGrid1.TableElement.HeaderRowHeight = 50;
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.
Approved
Last Updated: 30 Nov 2018 12:55 by farid
The workaround in the following MSDN resources results in an incorrect behavior in the header of RadDateTimePicker: https://code.msdn.microsoft.com/Fixing-Persian-Locale-for-6e66e044#content
New
Last Updated: 29 Nov 2018 11:05 by ADMIN
To reproduce: please refer to the attached gif file. The CellClick is not fired for the child rows that belong to columns that exceed the width of the parent template.

Workaround: set the AutoSizeColumnsMode property to Fill.

this.radVirtualGrid1.AutoSizeColumnsMode = Telerik.WinControls.UI.VirtualGridAutoSizeColumnsMode.Fill;
Declined
Last Updated: 29 Nov 2018 08:57 by TestTeam
Use the attached project to reproduce. 
- The first click should be disabled and the event should fire after the interval in the delay property. 

Workaround:
Me.RadRepeatButton1.Delay = 7000
New
Last Updated: 28 Nov 2018 12:19 by
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
Comments: 1
Category: Form
Type: Bug Report
0
To reproduce: Add a RadForm and at design time in the Properties section of Visual Studio try to customize some properties of the RadForm >> FormElement >> TitleBar, e.g. Padding, ForeColor. You will notice that even though you save the changes, they are not serialized. Thus, when you run the application, none of the changes are applied.

Workaround: set the changes programmatically at run time.
Completed
Last Updated: 27 Nov 2018 16:14 by Dimitar
To reproduce:
- Add a chart to the form and set series with DataSource
- Close and dispose the form

Workaround:
Set the DataSource property of the series to null prior closing.