2009-08-26 2 views
0

Как перетащить динамически создаваемые элементы управления моего кода показан нижеКак перетащить динамически создаваемые элементы управления

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

моего требования, чтобы перетащить это динамически созданный элемент управления кнопкой. Thanks in Advance

ответ

1
  1. Элементы управления, перетаскиваемые в конструктор, не создаются динамически. Они статически созданы и воссозданы. В большинстве случаев тезисы доступны из набора инструментов.
  2. Элементы управления, объявленные в коде, расположенном рядом с вашей кнопкой, динамически создаются. Они ДОЛЖНЫ быть созданы и воссозданы программно. Тезисы являются эксклюзивными для кода.

Однако при использовании динамически создаваемых элементов управления обычная практика использования PlaceHolders (этот элемент управления не отображается) для размещения ваших объектов.

Для этого ...

  1. Перетащите PlaceHolder, где вы хотели бы ваша кнопка будет. (Дизайнер).
  2. Включите вашу кнопку в PlaceHolder программно. (Код Behind)

Например ...

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

Надеется, что это помогает ...

0

Моего предложение для драг-н-падения: Silverlight

  1. Определите макет холста «ниже» вашего обычного макета (z-порядок).

  2. Когда вы выбираете свой объект для перетаскивания из обычного макета (сетки и т. Д.), Переместите объект в базовый холст, который позволяет позиционировать пиксели. Переместите холст «сверху» текущего макета.

  3. Перетащите объект, обновив его положение холста.

  4. Когда вы закончите перетаскивание, верните объект в обычный макет в соответствующем месте (вам может понадобиться проплыть через макет верхнего уровня, чтобы найти подходящую точку соединения). Верните слой холста в нижний z-порядок, чем ваш обычный макет.

Это работало довольно хорошо для простой системы перетаскивания, которая мне нужна.

Элементы управления Telerik также обеспечивают фреймворк drag-n-drop.

-Jeff