2016-09-04 83 views
0

多年来,我是一个顽固的WinForms保护者,但我改变了主意并尝试与WPF取得联系。我喜欢它,到目前为止。点击动态添加UserControls


我的问题:

我创建了一个用户控件 “SelectableRectangle”,其中包含一个矩形。那么 - 在我的一个应用程序中,我通过编程/动态创建了数百个应用程序。

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

任何想法?

+1

如果你真的想进入WPF,你应该首先了解MVVM,并在你的案例DataTemplates。那么这个问题将会过时 – lokusking

+0

关于这个话题你可以推荐的任何好的信息? –

回答

0

基本上,如果你的用户控件实现的事件处理程序,你可以在事件处理程序一样链接到一个事件:

mycontrol1.Click += new RoutedEventHandler(mycontrol_Click); 

,然后实现方法

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

此外,如果你的用户控件源自UIElement,UIElement3D或ContentElement,您可以使用AddHandler方法:

mycontrol1.AddHandler(Button.ClickEvent, new RoutedEventHandler(mycontrol_Click)) 
相关问题