XAMl中使用事件

在XAMl代码中,尽管属性设置通常占据了大量代码量,也可以在XAMl中声明事件,事件的声明通常使用事件名=“事件处理方法名称”,并且在后置代码中,需要对指定的后置代码提供声明和实现

而且方法的签名也需要和事件委托相匹配。

 <Grid>
        <!-- 定义按钮的样式资源,stackpanel中所有的按钮将具有此样式-->
        <StackPanel Name="sp">
            <StackPanel.Resources>
                <Style TargetType="Button">
                    <Setter Property="Height" Value="100" />
                    <Setter Property="FontSize" Value="19" />
                </Style>
            </StackPanel.Resources>
            <!--定义一个文本快和一个按钮,并为按钮添加事件-->
            <TextBlock Name="tblock" Text="点击下面的按钮" />
            <Button Name="btn1" Content="登录"  Click="btn1Click"/>
           </StackPanel>
    </Grid>
   private void btn1Click(object sender, RoutedEventArgs e)
        {
            Button mybtn = new Button();
            mybtn.Content = "我是新创建的按钮";
            //为按钮关联事件处理器,除了使用+=添加事件处理器外,还可以使用-=移除事件
            mybtn.Click += new RoutedEventHandler(mybtnClick);
            //在stackpanel获取子元素,插入sp.Children.Count(获取一个有共个元素)我们这里有2个 所以写2也可以
            sp.Children.Insert(sp.Children.Count ,mybtn);
            tblock.Text = "显示是第二个按钮";
            btn1.IsEnabled = false;
        }

        //为新按钮添加事件
        public void mybtnClick( object sender,RoutedEventArgs e)
        {

            MessageBox.Show("新按钮已经被单击");

        }

  

posted @ 2018-07-14 15:12  WhiteSpace  阅读(1091)  评论(0编辑  收藏  举报