Pergunta

Como arrastar e soltar os controles criados dinamicamente, meu código é mostrado abaixo

 Button btnTask = new Button();
 btnTask.Content = _myCustomTasks[iCtr].Description;
 btnTask.Background = _myCustomTasks[iCtr].TaskColor;
 stackPanel.Children.Add(btnTask);

Meu requisito é arrastar e soltar esse controle de botões criado dinamicamente. Desde já, obrigado

Foi útil?

Solução

  1. Os controles arrastados e soltos para o designer não são criados dinâmicos. Eles são criados e recriados estaticamente. Esses controles são acessíveis a partir da caixa de ferramentas na maioria dos casos.
  2. Os controles declarados no código por trás do seu botão são criados dinamicamente. Eles devem ser criados e recriados programaticamente. Esses controles são exclusivos do código por trás.

No entanto, ao usar controles criados dinamicamente, é uma prática comum usar espaços reservados (esse controle não é renderizado) para posicionar seus objetos.

Fazer isso ...

  1. Arraste e solte um espaço reservado onde você gostaria que seu botão fosse. (Designer).
  2. Adicione seu botão ao espaço reservado programaticamente. (Código por trás)

Por exemplo...

Button btnTask = new Button();
btnTask.Content = _myCustomTasks[iCtr].Description;
btnTask.Background = _myCustomTasks[iCtr].TaskColor;
PlaceHolder1.Controls.Add(btnTask);

Espero que ajude...

Outras dicas

Minha sugestão de drag-n-drop em Silverlight:

  1. Defina um layout de tela 'abaixo' do seu layout regular (ordem Z).

  2. Quando você seleciona seu objeto para arrastar-n-Drop do seu layout regular (grade, etc.), mova o objeto para a tela subjacente que permite o posicionamento do pixel. Mova a tela 'acima' do layout atual.

  3. Arraste o objeto atualizando sua posição de tela.

  4. Quando terminar o arrasto, retorne o objeto ao layout regular no local apropriado (talvez seja necessário pescar através do layout de nível superior para encontrar o ponto de conexão apropriado). Retorne a camada de tela para uma ordem Z mais baixa do que o layout regular.

Isso funcionou muito bem para um sistema simples de arrasto que eu precisava.

O Telerik Controls também fornece uma estrutura de arrasto-n-Drop.

-Jeff

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top