To reproduce: Add 2 TileGroupElements to a RadPanorama. Set the rowcount of the first to 2 and to the second one to 1. Add a tile to the first group and set its rowspan to 2. Start the application drag the tile, you will see exception. Workaround: Create a custom TileDragDropService: public class MyTileDragDropService : TileDragDropService { private Action<TileGroupElement, RadTileElement, int> OffsetTiles; private RadPanoramaElement Owner; public MyTileDragDropService(RadPanoramaElement owner) : base(owner) { this.Owner = (RadPanoramaElement)typeof(TileDragDropService).GetField("owner", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(this); MethodInfo matchedMethod = null; foreach (MethodInfo method in typeof(TileDragDropService).GetMethods(BindingFlags.Instance | BindingFlags.NonPublic)) { if (method.Name == "OffsetTiles" && method.GetParameters().Length == 3) { matchedMethod = method; break; } } this.OffsetTiles = (Action<TileGroupElement, RadTileElement, int>)matchedMethod.CreateDelegate(typeof(Action<TileGroupElement, RadTileElement, int>), this); } protected override void HandleGroupedDragDrop(RadDropEventArgs e) { RadTileElement target = e.HitTarget as RadTileElement; RadTileElement source = this.Context as RadTileElement; Point dropLocation = e.DropLocation; if (target != null) { dropLocation = target.PointToControl(dropLocation); } TileGroupElement @group = GetTargetGroup(new RectangleF(dropLocation, source.Size)); if (source == null || @group == null) { return; } Point targetCell = GetTargetCell(@group, dropLocation); if (targetCell.X == -1) { return; } targetCell.X = Math.Abs(Math.Min(targetCell.X, @group.RowsCount - source.RowSpan)); if (targetCell.X >= @group.RowsCount) { targetCell.X = @group.RowsCount - 1; } source.Row = targetCell.X; source.Column = targetCell.Y; if (!@group.Items.Contains(source)) { (source.Parent.Parent as TileGroupElement).Items.Remove(source); @group.Items.Add(source); } int oldColSpan = source.ColSpan; source.ColSpan = 0; this.OffsetTiles(@group, source, oldColSpan); source.ColSpan = oldColSpan; source.Column -= oldColSpan; this.Owner.InvalidateMeasure(true); this.Owner.UpdateLayout(); return; } } And set it to the panorama: panorama.PanoramaElement.DragDropService = new MyTileDragDropService();
To reproduce add a tile and set its ImageIndex before adding images to the ImageList. Here is design time code: // // radTileElement1 // this.radTileElement1.AccessibleDescription = "radTileElement1"; this.radTileElement1.AccessibleName = "radTileElement1"; this.radTileElement1.ImageIndex = 0; this.radTileElement1.Name = "radTileElement1"; this.radTileElement1.Text = "radTileElement1"; this.radTileElement1.Visibility = Telerik.WinControls.ElementVisibility.Visible; // // imageList1 // this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream"))); this.imageList1.TransparentColor = System.Drawing.Color.Transparent; this.imageList1.Images.SetKeyName(0, "checkmark.png"); Workaround - put the image list population before the ImageIndex setting in the designer // // imageList1 // this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream"))); this.imageList1.TransparentColor = System.Drawing.Color.Transparent; this.imageList1.Images.SetKeyName(0, "checkmark.png"); // // radTileElement1 // this.radTileElement1.AccessibleDescription = "radTileElement1"; this.radTileElement1.AccessibleName = "radTileElement1"; this.radTileElement1.ImageIndex = 0; this.radTileElement1.Name = "radTileElement1"; this.radTileElement1.Text = "radTileElement1"; this.radTileElement1.Visibility = Telerik.WinControls.ElementVisibility.Visible;
To reproduce: Add few tiles to a group and subscribe to their MouseLeave event
Add a tile to a RadPanorama groups, and set its Image or BackgroundImage property with an animated gif image. Run the project and zoom out the view using the mouse wheel. The tile with the animated gif will disappear.
Enabling scrolling through the tiles at design time will let the developers select and edit in the designer tiles that are off-screen.
If you add 10 tiles in 2 columns of 5 tiles and run the project, you will see that the tiles are not correctly positioned. This happens only if AutoArrangeNewTiles is true.
The position of a tile might get changed when the project is run and if the Row or Column properties of this tile have their default value of 0.
Steps to reproduce: 1. Add a RadPanorama to a form 2. Set the PanelImage to (none) 3. Run the project and you will see that the default image will be applied. At this time it seems that there is no way to prevent the default image from being applied. Until a decent solution is found (if any), this property is removed from the designer. COMMENT: This property should not be supported in design-time, because it is modified by each theme
Adding a tile with ColSpan property set to greater than 1 raises exception
Provide means of auto arranging tiles without setting the Column and Row property.