我想遍历文件夹中的所有文件,并为找到的每个 JPEG 文件动态创建图像控件。完成后,我想要一个包含动态创建的图像控件的表单(想想几乎任何照片查看软件,例如具有缩略图视图的 Picasa)。
我希望能够通过实现某种拖放事件处理程序来重新排序表单上这些动态创建的图像控件。我不知道我会遇到多少图像,因此无法为每个可能存在或不存在的图像控件硬编码事件处理程序。所以我正在寻找一种将事件处理程序动态添加到动态创建的控件的方法。
下面代码中使用的方法几乎就是我要找的。下面方法的问题是,如果我不知道控件的名称,我就无法对事件处理程序进行硬编码。
public partial class RoutedEventAddRemoveHandler {
void MakeButton(object sender, RoutedEventArgs e)
{
Button b2 = new Button();
b2.Content = "New Button";
// Associate event handler to the button. You can remove the event
// handler using "-=" syntax rather than "+=".
b2.Click += new RoutedEventHandler(Onb2Click);
root.Children.Insert(root.Children.Count, b2);
DockPanel.SetDock(b2, Dock.Top);
text1.Text = "Now click the second button...";
b1.IsEnabled = false;
}
void Onb2Click(object sender, RoutedEventArgs e)
{
text1.Text = "New Button (b2) Was Clicked!!";
}
}
注意我正在寻找 C# 代码而不是 XAML 的解决方案。这是使用这样的代码添加控件的解决方案:
// What I want
Fields.Add(new Field() { Name = "Username", Length = 100, Required = true });
不是这样的:
// What I do not want
<TextBox Width="100" Canvas.Left="50" Canvas.Top="20" />
谢谢