繁体   English   中英

向动态生成的WPF元素添加事件

[英]Adding events to dynamically generated WPF elements

我有几个Border元素,其中包含在运行时生成的东西。 我设法生成它们,但现在我想将事件与它们关联,例如MouseEnter,Click等,但是我不知道如何。 我设法为每个Border元素关联了一个唯一的名称(Name属性),因此我可以根据需要与他们合作。 如何在C#中将事件添加到每个生成的Border元素中?

这样使用

 border.MouseEnter += new MouseEventHandler(border_MouseEnter);

void border_MouseEnter(object sender, MouseEventArgs e)
 {
   throw new NotImplementedException();
 }
 <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();
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM