【问题标题】:How to run a thread from a page in mainwindow ? (WPF)如何从主窗口中的页面运行线程? (WPF)
【发布时间】:2019-05-31 20:17:44
【问题描述】:

我创建了一个页面并向该页面添加了一个按钮。

我把这个页面放在主窗口的一个框架中。

MainUi.Content = new Page1();

我想在单击按钮时在主窗口中启动一个线程。

在主窗口中

namespace WpfApp3
{

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    public void SendMessage()
    {
        MessageBox.Show("This is a test massage.");
        //And more
    }
}

页面内

namespace WpfApp3.Pages
{

    public partial class Page1: Page
    {
        public Page1()
        {
            InitializeComponent();
        }

        private void SendMessage_Click(object sender, RoutedEventArgs e)
        {
             SendMessage(); 
             //I want run this thread from here
        }
    }
}

谢谢。

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    您可以按照@Nawed Nabi Zada 的建议在Page 中注入对窗口的引用,或者您可以使用静态Window.GetWindow 方法获得对页面父窗口的引用:

    private void SendMessage_Click(object sender, RoutedEventArgs e)
    {
        MainWindow win = Window.GetWindow(this) as MainWindow;
        win.SendMessage();
    }
    

    【讨论】:

    • 非常感谢工作!窗口定义不是我必须更改为 MainWindow 的唯一一个。 MainWindow win = (MainWindow)Application.Current.MainWindow;
    • @SeyfullahNazikkol: win 应该是 MainWindow 类型。请查看我的编辑。
    猜你喜欢
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多