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("新按钮已经被单击"); }