您的位置:首页 > 编程语言

WPF一段代码搞定所有的点击事件

2016-07-23 10:43 621 查看
用一个方法来控制转发所有的点击事件,界面图如下:





<Page x:Class="WPFNavigate.Index"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="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));//开始导航
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: