Domanda

Come trascinare e rilasciare i controlli creati dinamicamente il mio codice è mostrato di seguito

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

il mio requisito è quello di trascinare e rilasciare questi controllo pulsante creato in modo dinamico. Grazie in anticipo

È stato utile?

Soluzione

  1. Controlli trascinati nel progettista non sono dynamicalled creati. Essi vengono creati e ricreati in modo statico. Tesi controlli sono accessibili dalla casella degli strumenti nella maggior parte dei casi.
  2. sono creati in modo dinamico i controlli dichiarati nel codice dietro come il tuo Button. Devono essere creati e ricreati programmazione. Tesi controlli sono esclusivi al codice dietro.

Tuttavia, quando si utilizzano i controlli creati dinamicamente si tratta di una prassi comune utilizzare segnaposto (questo controllo non viene eseguito il rendering) per posizionare gli oggetti.

Per fare ciò ...

  1. Trascinare e rilasciare un segnaposto dove vorreste il pulsante di essere. (Designer).
  2. Aggiungi il tuo Button al PlaceHolder di programmazione. (Codice sottostante)

Per esempio ...

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

Speranza che aiuta ...

Altri suggerimenti

Il mio suggerimento per il drag-n-drop in Silverlight:

  1. definire un layout Canvas 'di sotto' il layout regolare (z-order).

  2. Quando si seleziona l'oggetto di drag-n-drop dal layout regolare (griglia, ecc), spostare l'oggetto alla tela sottostante, che consente il posizionamento del pixel. Spostare la tela 'sopra' il layout corrente.

  3. Trascinare l'oggetto aggiornando la sua posizione su tela.

  4. Una volta terminato il trascinamento, restituire l'oggetto al layout regolare nella posizione appropriata (potrebbe essere necessario pescare attraverso il layout di alto livello per trovare il punto di connessione appropriata). Restituisce lo strato di tela per un ordine z più basso del vostro impianto regolare.

Questo ha funzionato abbastanza bene per un semplice sistema drag-drop che avevo bisogno.

Telerik controlla anche fornisce un quadro drag-n-drop.

-Jeff

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top