zoukankan      html  css  js  c++  java
  • WPF窗口和用户控件事件相互触发

      问题1:

      WPF项目里有一个窗口和一个用户控件,窗口和用户控件里都有一个Button,点击窗口里的Button如何触发用户控件里Button的Click事件

      解答:

    //窗口代码
     public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                contentControl1.Content = new UserControl1();
            }
    
            private void 窗口Button_Click(object sender, RoutedEventArgs e)
            {
               //如何触发 用户控件Button_Click
                var v = contentControl1.Content as UserControl1;
                v.DoSomethings();
            }
        }            

      

    //用户控件代码
    public partial class UserControl1 : UserControl
    {
        public UserControl1()
        {
            InitializeComponent();
        }
    
        private void 用户控件Button_Click(object sender, RoutedEventArgs e)
        {
            DoSomethings();
        }
    
        public void DoSomethings()
        {
            用户控件Button.Content = "Hello World";
        }
    }

      

      问题2:

      WPF项目里有一个窗口和一个用户控件,窗口和用户控件里都有一个Button,点击用户控件里的Button如何触发窗体里Button的Click事件

      

      解答:

    //用户控件代码
    private void 用户控件Button_Click(object sender, RoutedEventArgs e)
    {
        var w = Window.GetWindow(用户控件Button);   // 获取当前窗体
        var b = w.FindName("okButton") as Button;   //  找到当前窗体上的 okButton
        b.RaiseEvent(new RoutedEventArgs(e.RoutedEvent));  
    }
    道虽迩,不行不至;事虽小,不为不成。
  • 相关阅读:
    记一次在Windows10桌面环境搭建Jekins的吐血经历
    Windows系统下的输入法选择
    Linux后台进程启停脚本模板
    crontab采坑总结
    编程软件仓库集合
    CentOS7安装Chrome及驱动
    不错的“淘宝”网站
    软件下载网站集合
    在线API集合
    在线教程集合
  • 原文地址:https://www.cnblogs.com/LeeMacrofeng/p/8854233.html
Copyright © 2011-2022 走看看