如何拖放动态创建的控件 我的代码如下

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

我的要求是拖放这些动态创建的按钮控件。提前致谢

有帮助吗?

解决方案

  1. 拖放到设计器中的控件不是动态创建的。它们是静态创建和重新创建的。在大多数情况下,可以从工具箱访问这些控件。
  2. 在后面的代码中声明的控件(例如按钮)是动态创建的。它们必须以编程方式创建和重新创建。这些控件是隐藏代码独有的。

但是,当使用动态创建的控件时,通常的做法是使用占位符(此控件未呈现)来定位对象。

要这样做...

  1. 将占位符拖放到您想要放置按钮的位置。(设计师)。
  2. 以编程方式将按钮添加到占位符。(背后代码)

例如...

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

希望能帮助到你...

其他提示

我对 silverlight 中拖放的建议:

  1. 在常规布局“下方”定义 Canvas 布局(z 顺序)。

  2. 当您从常规布局(网格等)中选择要拖放的对象时,请将对象移动到允许像素定位的底层画布。将画布移动到当前布局的“上方”。

  3. 通过更新其画布位置来拖动对象。

  4. 完成拖动后,将对象返回到适当位置的常规布局(您可能必须在顶级布局中进行搜索才能找到适当的连接点)。将画布层返回到比常规布局更低的 z 顺序。

这对于我需要的简单拖放系统非常有效。

Telerik 控件还提供拖放框架。

-杰夫

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top