Hey guys, I'm trying to do drag&drop functionality on RadListView, I'm currently using this example and it's works just fine, the only problem is when I'm using custom visual Item on RadListView, there is a little portion of the item where the mouse capture drag&drop, how can make it work for all inside child of my custom visual item?
class CartaoCustomVisualListView : SimpleListViewVisualItem { LightVisualElement tituloElement; LightVisualElement dataInicioElement; LightVisualElement dataEntregaElement; LightVisualElement nomeBancoQueFezASolicitacao; LightVisualElement progressoCartaoElement; LightVisualElement totalChecklistElement; LightVisualElement totalAnexosElement; LightVisualElement totalComentariosElement; StackLayoutPanel stackLayout; protected override void CreateChildElements() { base.CreateChildElements(); stackLayout = new StackLayoutPanel(); stackLayout.Orientation = System.Windows.Forms.Orientation.Vertical; tituloElement = new LightVisualElement(); tituloElement.Click += (e, f) => this.DoClick(f); tituloElement.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; tituloElement.TextWrap = true; tituloElement.Margin = new System.Windows.Forms.Padding(10, 2, 2, 2); tituloElement.Font = new System.Drawing.Font("Segoe UI", 10, System.Drawing.FontStyle.Bold, GraphicsUnit.Point); tituloElement.ForeColor = Color.Black; tituloElement.AutoSize = true; tituloElement.AutoSizeMode = RadAutoSizeMode.Auto; stackLayout.Children.Add(tituloElement); dataInicioElement = new LightVisualElement(); dataInicioElement.Click += (e, f) => this.DoClick(f); dataInicioElement.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; dataInicioElement.Margin = new System.Windows.Forms.Padding(10, 2, 0, 2); dataInicioElement.Font = new System.Drawing.Font("Segoe UI", 8, System.Drawing.FontStyle.Regular, GraphicsUnit.Point); dataInicioElement.ForeColor = Color.Black; dataInicioElement.AutoSize = true; dataInicioElement.AutoSizeMode = RadAutoSizeMode.Auto; stackLayout.Children.Add(dataInicioElement); dataEntregaElement = new LightVisualElement(); dataEntregaElement.Click += (e, f) => this.DoClick(f); dataEntregaElement.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; dataEntregaElement.Margin = new System.Windows.Forms.Padding(10, 2, 0, 2); dataEntregaElement.Font = new System.Drawing.Font("Segoe UI", 8, System.Drawing.FontStyle.Regular, GraphicsUnit.Point); dataEntregaElement.ForeColor = Color.Black; dataEntregaElement.AutoSize = true; dataEntregaElement.AutoSizeMode = RadAutoSizeMode.Auto; stackLayout.Children.Add(dataEntregaElement); nomeBancoQueFezASolicitacao = new LightVisualElement(); nomeBancoQueFezASolicitacao.Click += (e, f) => this.DoClick(f); nomeBancoQueFezASolicitacao.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; nomeBancoQueFezASolicitacao.Margin = new System.Windows.Forms.Padding(10, 2, 0, 2); nomeBancoQueFezASolicitacao.Font = new System.Drawing.Font("Segoe UI", 8, System.Drawing.FontStyle.Regular, GraphicsUnit.Point); nomeBancoQueFezASolicitacao.ForeColor = Color.Black; nomeBancoQueFezASolicitacao.AutoSize = true; nomeBancoQueFezASolicitacao.AutoSizeMode = RadAutoSizeMode.Auto; stackLayout.Children.Add(nomeBancoQueFezASolicitacao); progressoCartaoElement = new LightVisualElement(); progressoCartaoElement.Click += (e, f) => this.DoClick(f); progressoCartaoElement.TextAlignment = System.Drawing.ContentAlignment.MiddleLeft; progressoCartaoElement.Margin = new System.Windows.Forms.Padding(10, 2, 0, 2); progressoCartaoElement.Font = new System.Drawing.Font("Segoe UI", 8, System.Drawing.FontStyle.Regular, GraphicsUnit.Point); progressoCartaoElement.ForeColor = Color.Black; progressoCartaoElement.AutoSize = true; progressoCartaoElement.AutoSizeMode = RadAutoSizeMode.Auto; stackLayout.Children.Add(progressoCartaoElement); totalAnexosElement = new LightVisualElement(); totalAnexosElement.Click += (e, f) => this.DoClick(f); totalAnexosElement.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; totalAnexosElement.Margin = new System.Windows.Forms.Padding(10, 1, 10, 1); totalAnexosElement.Font = new System.Drawing.Font("Segoe UI", 8, System.Drawing.FontStyle.Bold, GraphicsUnit.Point); totalAnexosElement.ForeColor = SystemColors.AppWorkspace; totalAnexosElement.AutoSize = true; totalAnexosElement.AutoSizeMode = RadAutoSizeMode.Auto; totalAnexosElement.DrawText = true; stackLayout.Children.Add(totalAnexosElement); totalChecklistElement = new LightVisualElement(); totalChecklistElement.Click += (e, f) => this.DoClick(f); totalChecklistElement.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; totalChecklistElement.Margin = new System.Windows.Forms.Padding(10, 1, 10, 1); totalChecklistElement.Font = new System.Drawing.Font("Segoe UI", 8, System.Drawing.FontStyle.Bold, GraphicsUnit.Point); totalChecklistElement.ForeColor = SystemColors.AppWorkspace; totalChecklistElement.AutoSize = true; totalChecklistElement.AutoSizeMode = RadAutoSizeMode.Auto; totalChecklistElement.DrawText = true; stackLayout.Children.Add(totalChecklistElement); totalComentariosElement = new LightVisualElement(); totalComentariosElement.Click += (e, f) => this.DoClick(f); totalComentariosElement.TextAlignment = System.Drawing.ContentAlignment.MiddleRight; totalComentariosElement.Margin = new System.Windows.Forms.Padding(10, 1, 10, 1); totalComentariosElement.Font = new System.Drawing.Font("Segoe UI", 8, System.Drawing.FontStyle.Bold, GraphicsUnit.Point); totalComentariosElement.ForeColor = SystemColors.AppWorkspace; totalComentariosElement.AutoSize = true; totalComentariosElement.AutoSizeMode = RadAutoSizeMode.Auto; totalComentariosElement.DrawText = true; stackLayout.Children.Add(totalComentariosElement); Children.Add(stackLayout); Shape = new RoundRectShape(5); this.BackColor = Color.White; this.Padding = new Padding(5); } protected override void SynchronizeProperties() { var bound = this.Data.DataBoundItem as cartao_model; if(bound != null) { tituloElement.Text = bound.obj_cartao.titulo; if (bound.obj_cartao.data_inicio != null) { dataInicioElement.Text = "Data inicio: " + bound.obj_cartao.data_inicio.ToString(); dataInicioElement.Visibility = ElementVisibility.Visible; } else dataInicioElement.Visibility = ElementVisibility.Collapsed; if (bound.obj_cartao.data_entrega != null) { dataEntregaElement.Text = "Data entrega: " + bound.obj_cartao.data_entrega.ToString(); dataEntregaElement.Visibility = ElementVisibility.Visible; } else dataEntregaElement.Visibility = ElementVisibility.Collapsed; if (bound.obj_cartao.id_banco_de_dados != null && bound.obj_cartao.id_banco_de_dados != 0) { nomeBancoQueFezASolicitacao.Text = "Solicitador por: " + bound.obj_cartao.banco_de_dados.nome; nomeBancoQueFezASolicitacao.Visibility = ElementVisibility.Visible; } else nomeBancoQueFezASolicitacao.Visibility = ElementVisibility.Collapsed; if (bound.anexos.TemRegistro()) { totalAnexosElement.Visibility = ElementVisibility.Visible; totalAnexosElement.Text = $"anexos: {bound.anexos.Count()}"; } else totalAnexosElement.Visibility = ElementVisibility.Collapsed; int totalConcluidos = 0, totalItens = 0; if (bound.obj_cartao.checklist.TemRegistro()) { totalChecklistElement.Visibility = ElementVisibility.Visible; foreach(var item in bound.obj_cartao.checklist) { totalConcluidos = totalConcluidos + item.itens.Where(c => c.concluido == true).Count(); totalItens = totalItens + item.itens.Count(); if(totalItens == totalConcluidos) { totalChecklistElement.ForeColor = Color.Green; totalChecklistElement.Font = new System.Drawing.Font("Segoe UI", 8, System.Drawing.FontStyle.Bold, GraphicsUnit.Point); } else { totalChecklistElement.ForeColor = SystemColors.AppWorkspace; totalChecklistElement.Font = new System.Drawing.Font("Segoe UI", 8, System.Drawing.FontStyle.Bold, GraphicsUnit.Point); } } totalChecklistElement.Text = $"checklist: {totalConcluidos}/{totalItens}"; } else totalChecklistElement.Visibility = ElementVisibility.Collapsed; if (bound.comentarios.TemRegistro()) { totalComentariosElement.Visibility = ElementVisibility.Visible; totalComentariosElement.Text = $"comentários: {bound.comentarios.Count()}"; } else totalComentariosElement.Visibility = ElementVisibility.Collapsed; progressoCartaoElement.Text ="Status: " + bound.obj_cartao.progresso_cartao.GetDescription(); } } }