抱歉這個愚蠢的問題,但我無法讓它作業。
我有一個打開另一個視窗的 MainWindow。
public static Window2 LoadWindow = new Window2();
public MainWindow()
{
InitializeComponent();
LoadWindow.Show();
稍后在代碼中,我啟動一個函式,在新視窗中創建一個后臺作業者
if (MainWindow.Start == true)
{
MainWindow.LoadWindow.LoadImage(null, null);
MainWindow.Start = false;
}
public void LoadImage(object sender, RoutedEventArgs e)
{
worker = new BackgroundWorker();
...
然后我嘗試了這個來改變主視窗的可見性。
private void worker_Completed(object sender, RunWorkerCompletedEventArgs e)
{
Application.Current.Dispatcher.Invoke(new Action(() => {
Application.Current.MainWindow.Visibility = Visibility.Visible;
}));
}
我以為 Application.Current.MainWindow 會指向我的 MainWindow,但除錯器說 Window2 是 Current.MainWindow。
實際上,我對 MainWindow 完全感到困惑。通常我用一個名字初始化一個類,然后用這個名字來使用它。(例如 Window2=class,LoadWindow=它的名稱) 但是 MainWindow 的名稱是什么,或者我如何從另一個視窗與它進行互動。當 MainWindow != MainWindow >.< 時,這太令人困惑了。
uj5u.com熱心網友回復:
您可以在建構式中創建它時注入LoadWindow對 的參考MainWindow,也可以MainWindow使用Application.Current.Windows集合獲取對 的參考:
var mainWindow = Application.Current.Windows.OfType<MainWindow>().FirstOrDefault();
if (mainWindow != null)
mainWindow.Visibility = Visibility.Visible;
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/496861.html
上一篇:資源目錄存在時找不到
