To reproduce:
1.Add a RadListView and set its ViewType property to ListViewType.DetailsView.
2.Change the RadListView.Cursor property to Cursors.Hand.
As a result the cursor is not applied at all.
Workaround:
public class CustomRadListView : RadListView
{
public override string ThemeClassName
{
get
{
return typeof(RadListView).FullName;
}
}
public CustomRadListView()
{
}
protected override RadListViewElement CreateListViewElement()
{
return new CustomRadListViewElement();
}
}
public class CustomRadListViewElement : RadListViewElement
{
protected override Type ThemeEffectiveType
{
get
{
return typeof(RadListViewElement);
}
}
public CustomRadListViewElement()
{
}
protected override BaseListViewElement CreateViewElement()
{
if (this.ViewType == ListViewType.DetailsView)
{
return new CustomDetailListViewElement(this);
}
return base.CreateViewElement();
}
}
public class CustomDetailListViewElement : DetailListViewElement
{
Cursor initialCursor = null;
protected override Type ThemeEffectiveType
{
get
{
return typeof(DetailListViewElement);
}
}
public CustomDetailListViewElement(RadListViewElement owner) : base(owner)
{
}
protected override bool ProcessMouseUp(MouseEventArgs e)
{
if (initialCursor == null)
{
initialCursor = this.ElementTree.Control.Cursor;
}
bool result = base.ProcessMouseUp(e);
this.ElementTree.Control.Cursor = initialCursor;
return result;
}
protected override bool ProcessMouseMove(MouseEventArgs e)
{
if (initialCursor == null)
{
initialCursor = this.ElementTree.Control.Cursor;
}
this.Owner.ColumnResizingBehavior.HandleMouseMove(e.Location);
DetailListViewHeaderCellElement headerCell =
this.ElementTree.GetElementAtPoint(e.Location) as DetailListViewHeaderCellElement;
if (this.Owner.ColumnResizingBehavior.IsResizing)
{
return true;
}
if (headerCell != null && headerCell.IsInResizeLocation(e.Location))
{
this.ElementTree.Control.Cursor = Cursors.SizeWE;
}
else
{
if (initialCursor != null)
{
this.ElementTree.Control.Cursor = initialCursor;
}
else
{
this.ElementTree.Control.Cursor = Cursors.Default;
}
}
return true;
}
}