2011-03-24 108 views
0

我有几个带有内部东西的Border元素,它们是在运行时生成的。我设法产生它们,但现在我想将事件与它们关联,如MouseEnter,Click等,但我不知道如何。 我设法将每个Border元素关联一个唯一的名称(Name属性),所以如果需要的话,我可以使用它们。如何在C#中为每个生成的Border元素添加事件?将事件添加到动态生成的WPF元素

回答

2
<Style x:Key="BorderNameStyle" TargetType="{x:Type BorderName}"> 
       <EventSetter Event="MouseEnter" Handler="itm_MouseEnter"></EventSetter> 
       <EventSetter Event="MouseLeftButtonUp" Handler="itm_MouseLeftButtonUp"></EventSetter> 
       <EventSetter Event="PreviewMouseRightButtonUp" Handler="itm_MouseRightButtonUp"></EventSetter> 
       <EventSetter Event="MouseLeave" Handler="itm_MouseLeave"></EventSetter> 
       <EventSetter Event="MouseDoubleClick" Handler="ItemMouseDoubleClick"></EventSetter> 
</Style> 

通过你身后需要调用路由事件,如下面定义的边界或代码样式。

border.MouseEnter += new MouseEventHandler(border_MouseEnter); 

    void border_MouseEnter(object sender, MouseEventArgs e) 
    { 
     Button btn = new Button(); 
     btn.Click += new RoutedEventHandler(btn_Click); 
    } 
    void btn_Click(object sender, RoutedEventArgs e) 
    { 
     throw new NotImplementedException(); 
    } 
2

使用这样

border.MouseEnter += new MouseEventHandler(border_MouseEnter); 

void border_MouseEnter(object sender, MouseEventArgs e) 
{ 
    throw new NotImplementedException(); 
} 
相关问题