zoukankan      html  css  js  c++  java
  • 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="ResourcesPhoneHome3.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));//开始导航
            }
  • 相关阅读:
    使用Systemctl命令来管理系统服务
    使用lsblk命令列出系统中的块设备
    史上最全 | 1000余个实用尽调网站分类汇编
    ​2021年机器学习什么风向?谷歌大神Quoc Le:把注意力放在MLP上
    上手使用 DeepMind 分布式强化学习框架 Acme ,对开发者超友好
    005-ESP32学习开发(SDK)-新建工程补充-通过官方示例创建工程
    Golang 程序中实现优雅关闭 HTTP SERVER
    Golang的time.NewTicker周期性定时器使用案例
    彻底搞懂golang的GOROOT和GOPATH
    微服务之-ServiceMesh
  • 原文地址:https://www.cnblogs.com/imeiba/p/5698035.html
Copyright © 2011-2022 走看看