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