Hi,
I have been trying to make the icon view more of a tile view however when I try and do the back colour it does a gradient fill instead. See attachment
Form Code
this.radListView2.ViewType = ListViewType.IconsView; this.radListView2.ItemSize = new Size(300, 120); this.radListView2.ItemSpacing = 10; this.radListView2.AllowEdit = false; this.radListView2.EnableFiltering = true; this.radListView2.HotTracking = false; this.radListView2.RootElement.BackColor = Color.Transparent; this.radListView2.BackColor = Color.Transparent; this.radListView2.ListViewElement.DrawFill = false; this.radListView2.ListViewElement.ViewElement.BackColor = Color.Transparent; this.radListView2.RootElement.EnableElementShadow = false;}private void radListView2_VisualItemCreating(object sender, ListViewVisualItemCreatingEventArgs e){ if (e.VisualItem is IconListViewVisualItem) { e.VisualItem = new PeopleListIcon(); }}
PeopleListIcon Code
using System;using HRSystem.HRDataCentre;using System.Collections.Generic;using System.Drawing;using System.Reflection;using System.Text;using Telerik.WinControls;using Telerik.WinControls.UI;using System.Linq;using Telerik.WinControls.Layouts;namespace HRSystem.New_Element{ public class PeopleListIcon : IconListViewVisualItem { protected override Type ThemeEffectiveType { get { return typeof(IconListViewVisualItem); } } LightVisualElement RoleName = new LightVisualElement(); LightVisualElement RoleType = new LightVisualElement(); LightVisualElement PersonName = new LightVisualElement(); LightVisualElement Duration = new LightVisualElement(); LightVisualElement Active = new LightVisualElement(); private StackLayoutElement verticalContainer = new StackLayoutElement(); private StackLayoutElement roomHeaderContainer = new StackLayoutElement(); private StackLayoutElement roomFooterContainer = new StackLayoutElement(); protected override void CreateChildElements() { base.CreateChildElements(); verticalContainer.Orientation = System.Windows.Forms.Orientation.Vertical; verticalContainer.NotifyParentOnMouseInput = true; verticalContainer.ShouldHandleMouseInput = false; verticalContainer.StretchHorizontally = true; verticalContainer.StretchVertically = true; roomHeaderContainer.Orientation = System.Windows.Forms.Orientation.Horizontal; roomHeaderContainer.NotifyParentOnMouseInput = true; roomHeaderContainer.ShouldHandleMouseInput = false; roomHeaderContainer.Children.Add(RoleName); roomHeaderContainer.Children.Add(RoleType); roomHeaderContainer.StretchHorizontally = true; RoleName.NotifyParentOnMouseInput = true; RoleName.ShouldHandleMouseInput = false; RoleName.StretchHorizontally = true; RoleName.CustomFont = "Roboto"; RoleName.CustomFontSize = 9; RoleName.CustomFontStyle = FontStyle.Bold; RoleName.Margin = new System.Windows.Forms.Padding(5, 10, 0, 0); RoleName.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; RoleType.NotifyParentOnMouseInput = true; RoleType.ShouldHandleMouseInput = false; RoleType.StretchHorizontally = false; RoleType.CustomFont = "Roboto"; RoleType.CustomFontSize = 9; RoleType.CustomFontStyle = FontStyle.Regular; RoleType.Margin = new System.Windows.Forms.Padding(0, 5, 5, 0); roomFooterContainer.Orientation = System.Windows.Forms.Orientation.Horizontal; roomFooterContainer.NotifyParentOnMouseInput = true; roomFooterContainer.ShouldHandleMouseInput = false; roomFooterContainer.StretchHorizontally = true; roomFooterContainer.DrawFill = true; roomFooterContainer.BackColor = Color.White; roomFooterContainer.GradientStyle = GradientStyles.Solid; roomFooterContainer.MinSize = new System.Drawing.Size(0, 30); PersonName.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; PersonName.StretchHorizontally = false; PersonName.Layout.LeftPart.Padding = new System.Windows.Forms.Padding(24, 0, 8, 0); PersonName.Alignment = System.Drawing.ContentAlignment.MiddleCenter; PersonName.NotifyParentOnMouseInput = true; PersonName.ShouldHandleMouseInput = false; PersonName.CustomFont = "Roboto"; PersonName.CustomFontSize = 12; PersonName.CustomFontStyle = FontStyle.Regular; Duration.NotifyParentOnMouseInput = true; Duration.ShouldHandleMouseInput = false; Duration.StretchVertically = true; Active.StretchVertically = true; roomFooterContainer.Children.Add(Duration); roomFooterContainer.Children.Add(Active); Active.NotifyParentOnMouseInput = true; Active.ShouldHandleMouseInput = false; Active.StretchHorizontally = false; Active.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; Active.CustomFont = "Roboto"; Active.CustomFontSize = 9; Active.CustomFontStyle = FontStyle.Regular; Duration.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; Duration.CustomFont = "Roboto"; Duration.CustomFontSize = 9; Duration.CustomFontStyle = FontStyle.Regular; Duration.Margin = new System.Windows.Forms.Padding(5, 0, 0, 0); Duration.StretchHorizontally = false; verticalContainer.Children.Add(roomHeaderContainer); verticalContainer.Children.Add(PersonName); verticalContainer.Children.Add(roomFooterContainer); this.Children.Add(this.verticalContainer); } protected override void SynchronizeProperties() { base.SynchronizeProperties(); this.DrawText = false; this.BackColor = Color.White; this.DrawFill = true; this.DrawBorder = false; RoleName.Margin = new System.Windows.Forms.Padding(8, 8, 0, 0); RoleType.ImageLayout = System.Windows.Forms.ImageLayout.None; PersonName.Margin = new System.Windows.Forms.Padding(24, 0, 0, 0); PersonName.Layout.LeftPart.Margin = new System.Windows.Forms.Padding(0, 0, 5, 0); PersonName.StretchHorizontally = true; PersonName.ImageAlignment = ContentAlignment.MiddleLeft; PersonName.TextAlignment = ContentAlignment.MiddleLeft; Duration.Layout.LeftPart.Margin = new System.Windows.Forms.Padding(0, -3, 0, 0); Duration.ForeColor = Color.FromArgb(200, 0, 0, 0); Active.ForeColor = Color.FromArgb(200, 0, 0, 0); Active.Layout.LeftPart.Margin = new System.Windows.Forms.Padding(0, -3, 0, 0); People Person = this.Data.DataBoundItem as People; if (Person != null) { RoleName.Text = Person.Roles.Any() ? Person.Roles.FirstOrDefault().RoleTitle : "No Role"; RoleType.Text = Person.Roles.Any() ? Person.Roles.FirstOrDefault().Type.Description : ""; PersonName.Text = Person.Forename + " " + Person.Surname; int age = Person.Roles.Any() ? Function.GetAge(Person.Roles.FirstOrDefault().StartDate) : 0; Duration.Text = age + " years"; RoleName.ForeColor = Color.FromArgb(190, 0, 0, 0); RoleType.ForeColor = Color.Black; PersonName.ForeColor = Color.Black; if (RoleType.Text == "Staff" || RoleType.Text == "Volunteer") { this.BackColor = Color.FromArgb(247, 247, 247); } else { this.BackColor = Color.FromArgb(170, 13, 13); } } else { PersonName.Text = "Free Room"; Duration.Text = "0 days"; this.BackColor = Color.DarkRed; RoleName.ForeColor = Color.White; RoleType.ForeColor = Color.White; PersonName.ForeColor = Color.White; } } }}