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

  

<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));//开始导航
}

WPF一段代码搞定所有的点击事件的更多相关文章

  1. oracle 字段自增 两段代码搞定

    (这几天做了个小小课程设计时用的是oracle数据库,第一次用,发现oracle和我们以前用的sql server .mysql是有如此多不同的地方,下面是遇到的问题之一和解决方法,和大家分享下) 用 ...

  2. 开源作品ThinkJDBC—一行代码搞定数据库操作

    1 简介 ThinkJD,又名ThinkJDBC,一个简洁而强大的开源JDBC操作库.你可以使用Java像ThinkPHP框架的M方法一样,一行代码搞定数据库操作.ThinkJD会自动管理数据库连接, ...

  3. 30行代码搞定WCF并发性能测试

    [以下只是个人观点,欢迎交流] 30行代码搞定WCF并发性能 轻量级测试. 1. 调用并发测试接口 static void Main()         {               List< ...

  4. 3kb jQuery代码搞定各种树形选择。

    自制Jquery树形选择插件. 对付各种树形选择(省市,分类..)90行Jquery代码搞定,少说废话直接上插件代码.稍后介绍使用说明.是之前写的一个插件的精简版. 1.Jquery插件代码 /* * ...

  5. 一行代码搞定Adapter

    15年Google I/O大会发不了三个重要支持库 >Material design (Android Support Design) >百分比布局:Percent support lib ...

  6. 对百度WebUploader的二次封装,精简前端代码之图片预览上传(两句代码搞定上传)

    前言 本篇文章上一篇: 对百度WebUploader开源上传控件的二次封装,精简前端代码(两句代码搞定上传) 此篇是在上面的基础上扩展出来专门上传图片的控件封装. 首先我们看看效果: 正文 使用方式同 ...

  7. Asp.Net Core 轻松学-一行代码搞定文件上传 JSONHelper

    Asp.Net Core 轻松学-一行代码搞定文件上传   前言     在 Web 应用程序开发过程中,总是无法避免涉及到文件上传,这次我们来聊一聊怎么去实现一个简单方便可复用文件上传功能:通过创建 ...

  8. 10行代码搞定移动web端自定义tap事件

    发发牢骚 移动web端里摸爬滚打这么久踩了不少坑,有一定移动web端经验的同学一定被click困扰过.我也不列外.一路走来被虐的不行,fastclick.touchend.iscroll什么的都用过, ...

  9. 一行代码搞定 FTP 服务

    环境搭建: python windows/linux pip install pyftpdlib (安装失败请到这里下载:https://pypi.python.org/pypi/pyftpdlib/ ...

随机推荐

  1. AC日记——Mato的文件管理 bzoj 3289

    3289 思路: 莫队求区间逆序对个数,树状数组维护: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 500 ...

  2. 软件包管理yum

    (1)yum基础源 1)国内yum源地址 mirrors.aliyun.com //阿里有基础源和epel源 mirrors.163.com 查看使用帮助 2)更换yum源为阿里云(Centos7为例 ...

  3. 2.Spark Streaming运行机制和架构

    1 解密Spark Streaming运行机制 上节课我们谈到了技术界的寻龙点穴.这就像过去的风水一样,每个领域都有自己的龙脉,Spark就是龙脉之所在,它的龙穴或者关键点就是SparkStreami ...

  4. 常用的smarty变量操作

    php模板引擎smarty的变量操作符可用于操作变量,自定义函数和字符.语法中使用"|"应用变量操作符,多个参数用":"??指簟?/DIV> capita ...

  5. 如何严格设置php中session过期时间 (转)

    如何严格限制session在30分钟后过期!1.设置客户端cookie的lifetime为30分钟:2.设置session的最大存活周期也为30分钟:3.为每个session值加入时间戳,然后在程序调 ...

  6. shell脚本报错退出

    在shell脚本中,比如有以下的代码: cd /root/test88 rm -rf  backup 如果目录/root/test88不存在,脚本不会停止,依然会执行rm -rf backup这个命令 ...

  7. 【后缀自动机】hihocoder1445 后缀自动机二·重复旋律5

    解题方法提示 小Hi:本周的题目其实就是给定一个字符串S,要求出S的所有不同子串的数目.小Ho你知道如何快速求解么? 小Ho:我们最近在讨论后缀自动机,所以肯定是和后缀自动机有关!根据上周学习的SAM ...

  8. 求n以内的质数的数量

  9. Problem C: 零起点学算法82——数组中查找数

    #include<stdio.h> int main(void) { ],m; while(scanf("%d",&n)!=EOF) { ;i<n;i++ ...

  10. [原创]MyEclipse2014全手动实现反向工程---解决手动整合ssh时发生的、在hibernate反向工程的时候找不到项目名的问题

    1.在MyEclipse2014中新建两个Web Project项目,名字分别为:Hibernate_manual和Hibernate_auto. 2.单击选中新建的Web项目Hibernate_au ...