单击动态添加的UserControls

本文关键字:UserControls 添加 动态 单击 | 更新日期: 2023-09-27 18:05:30

多年来我一直是一个顽固的WinForms保护主义者,但我改变了主意,并尝试与WPF取得联系。到目前为止我还挺喜欢的。


我的问题:

我已经创建了一个UserControl "SelectableRectangle",它包含一个矩形。在我的一个应用程序中,我以编程/动态的方式创建了数百个。

并且我希望能够"点击"它们并使用不同的工具,例如更改颜色。因此,我需要知道在主窗口中我点击了哪个SelectableRectangle。

任何想法?

单击动态添加的UserControls

基本上,如果您的usercontrol实现了一个事件处理程序,您可以像这样将事件处理程序链接到事件:

 mycontrol1.Click += new RoutedEventHandler(mycontrol_Click);

然后实现方法

 private void mycontrol(object sender, RoutedEventArgs e)
    {
       // do things here
    }

此外,如果你的usercontrol是从UIElement, UIElement3D或ContentElement派生的,你可以使用AddHandler方法:

mycontrol1.AddHandler(Button.ClickEvent, new RoutedEventHandler(mycontrol_Click))