你的位置:首页 > ASP.net教程

[ASP.net教程]WPF一段代码搞定所有的点击事件


 

 

用一个方法来控制转发所有的点击事件,界面图如下:

 

  

<Page x:Class="WPFNavigate.Index"    ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    ="http://schemas.microsoft.com/winfx/2006/xaml"    Title="Home">  <Page.Resources>    <Style TargetType="Button">      <Setter Property="Opacity" Value="1"/>      <Setter Property="Width" Value="40"/>      <Setter Property="Height" Value="40"/>    </Style>  </Page.Resources>  <!--设置背景图片-->  <Page.Background>    <ImageBrush ImageSource="Resources\Phone\Home3.png" Stretch="Fill" />    <!--Stretch伸展-->  </Page.Background>  <StackPanel Name="MyHome" ButtonBase.Click="MyHome_Click">    <Canvas Height="400" Width="240">      <!--时钟-->      <Button Opacity="0" x:Name="Colck" Canvas.Left="10" Canvas.Top="20" />      <!--日历-->      <Button Opacity="0" x:Name="RiLi" Canvas.Left="70" Canvas.Top="22" />      <!--音乐-->      <Button Opacity="0" x:Name="Muesic" Canvas.Left="130" Canvas.Top="22" />      <!--网络-->      <Button Opacity="0" x:Name="Web" Canvas.Left="190" Canvas.Top="22" />      <!--相机-->      <Button Opacity="0" x:Name="Camary" Canvas.Left="10" Canvas.Top="90" />      <!--邮件-->      <Button Opacity="0" x:Name="Email" Canvas.Left="70" Canvas.Top="90" />      <!--相册-->      <Button Opacity="0" x:Name="photos" Canvas.Left="130" Canvas.Top="90" />      <!--搜索-->      <Button Opacity="0" x:Name="Seching" Canvas.Left="190" Canvas.Top="90" />      <!--录像-->      <Button Opacity="0" x:Name="Viodue" Canvas.Left="10" Canvas.Top="165" Click="Viodue_Click" />      <!--收音机-->      <Button Opacity="0" x:Name="FM" Canvas.Left="70" Canvas.Top="165" />      <!---->    <Button Opacity="0" x:Name="AsmsungApp" Canvas.Left="130" Canvas.Top="165" />    <!--设置-->      <Button Opacity="0" x:Name="Stetting" Canvas.Left="190" Canvas.Top="165" />      <!--社交-->      <Button Opacity="0" x:Name="Cluble" Canvas.Left="10" Canvas.Top="235" />      <!--WebViolue-->      <Button Opacity="0" x:Name="WebViolu" Canvas.Left="70" Canvas.Top="235" />      <!---->    <Button Opacity="0" x:Name="Read" Canvas.Left="130" Canvas.Top="235" />    <Button Opacity="0" x:Name="backNode" Canvas.Left="190" Canvas.Top="235" />     <Button Opacity="0" x:Name="Call" Canvas.Left="10" Canvas.Top="350" />    <!--WebViolue-->      <Button Opacity="0" x:Name="TongXunlu" Canvas.Left="70" Canvas.Top="350" />      <!---->    <Button Opacity="0" x:Name="Messing" Canvas.Left="130" Canvas.Top="350" />       <Button Opacity="0" x:Name="Home" Canvas.Left="190" Canvas.Top="350" />  </Canvas>  </StackPanel></Page>

 

资源文件:

处理代码逻辑

/// <summary>    /// 点击事件    /// </summary>    /// <param name="sender"></param>    /// <param name="e"></param>    private void MyHome_Click(object sender, RoutedEventArgs e)    {      Button btn = (Button)e.OriginalSource;//获取点击的Button      Type type = this.GetType();//得到他的类型      Assembly assenbly = type.Assembly;//程序集的信息      Page page = (Page)assenbly.CreateInstance(type.Namespace + "." + btn.Name);//创建一个实例      NavigationService.Navigate(new Uri(btn.Name + ".xaml", UriKind.Relative));//开始导航    }