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

<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一段代码搞定所有的点击事件的更多相关文章
- oracle 字段自增 两段代码搞定
(这几天做了个小小课程设计时用的是oracle数据库,第一次用,发现oracle和我们以前用的sql server .mysql是有如此多不同的地方,下面是遇到的问题之一和解决方法,和大家分享下) 用 ...
- 开源作品ThinkJDBC—一行代码搞定数据库操作
1 简介 ThinkJD,又名ThinkJDBC,一个简洁而强大的开源JDBC操作库.你可以使用Java像ThinkPHP框架的M方法一样,一行代码搞定数据库操作.ThinkJD会自动管理数据库连接, ...
- 30行代码搞定WCF并发性能测试
[以下只是个人观点,欢迎交流] 30行代码搞定WCF并发性能 轻量级测试. 1. 调用并发测试接口 static void Main() { List< ...
- 3kb jQuery代码搞定各种树形选择。
自制Jquery树形选择插件. 对付各种树形选择(省市,分类..)90行Jquery代码搞定,少说废话直接上插件代码.稍后介绍使用说明.是之前写的一个插件的精简版. 1.Jquery插件代码 /* * ...
- 一行代码搞定Adapter
15年Google I/O大会发不了三个重要支持库 >Material design (Android Support Design) >百分比布局:Percent support lib ...
- 对百度WebUploader的二次封装,精简前端代码之图片预览上传(两句代码搞定上传)
前言 本篇文章上一篇: 对百度WebUploader开源上传控件的二次封装,精简前端代码(两句代码搞定上传) 此篇是在上面的基础上扩展出来专门上传图片的控件封装. 首先我们看看效果: 正文 使用方式同 ...
- Asp.Net Core 轻松学-一行代码搞定文件上传 JSONHelper
Asp.Net Core 轻松学-一行代码搞定文件上传 前言 在 Web 应用程序开发过程中,总是无法避免涉及到文件上传,这次我们来聊一聊怎么去实现一个简单方便可复用文件上传功能:通过创建 ...
- 10行代码搞定移动web端自定义tap事件
发发牢骚 移动web端里摸爬滚打这么久踩了不少坑,有一定移动web端经验的同学一定被click困扰过.我也不列外.一路走来被虐的不行,fastclick.touchend.iscroll什么的都用过, ...
- 一行代码搞定 FTP 服务
环境搭建: python windows/linux pip install pyftpdlib (安装失败请到这里下载:https://pypi.python.org/pypi/pyftpdlib/ ...
随机推荐
- AC日记——Mato的文件管理 bzoj 3289
3289 思路: 莫队求区间逆序对个数,树状数组维护: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 500 ...
- 软件包管理yum
(1)yum基础源 1)国内yum源地址 mirrors.aliyun.com //阿里有基础源和epel源 mirrors.163.com 查看使用帮助 2)更换yum源为阿里云(Centos7为例 ...
- 2.Spark Streaming运行机制和架构
1 解密Spark Streaming运行机制 上节课我们谈到了技术界的寻龙点穴.这就像过去的风水一样,每个领域都有自己的龙脉,Spark就是龙脉之所在,它的龙穴或者关键点就是SparkStreami ...
- 常用的smarty变量操作
php模板引擎smarty的变量操作符可用于操作变量,自定义函数和字符.语法中使用"|"应用变量操作符,多个参数用":"??指簟?/DIV> capita ...
- 如何严格设置php中session过期时间 (转)
如何严格限制session在30分钟后过期!1.设置客户端cookie的lifetime为30分钟:2.设置session的最大存活周期也为30分钟:3.为每个session值加入时间戳,然后在程序调 ...
- shell脚本报错退出
在shell脚本中,比如有以下的代码: cd /root/test88 rm -rf backup 如果目录/root/test88不存在,脚本不会停止,依然会执行rm -rf backup这个命令 ...
- 【后缀自动机】hihocoder1445 后缀自动机二·重复旋律5
解题方法提示 小Hi:本周的题目其实就是给定一个字符串S,要求出S的所有不同子串的数目.小Ho你知道如何快速求解么? 小Ho:我们最近在讨论后缀自动机,所以肯定是和后缀自动机有关!根据上周学习的SAM ...
- 求n以内的质数的数量
- Problem C: 零起点学算法82——数组中查找数
#include<stdio.h> int main(void) { ],m; while(scanf("%d",&n)!=EOF) { ;i<n;i++ ...
- [原创]MyEclipse2014全手动实现反向工程---解决手动整合ssh时发生的、在hibernate反向工程的时候找不到项目名的问题
1.在MyEclipse2014中新建两个Web Project项目,名字分别为:Hibernate_manual和Hibernate_auto. 2.单击选中新建的Web项目Hibernate_au ...