我的應用程序運行查詢,並在他們運行時,我禁用主應用程序,並顯示進度條屏幕。我希望這兩個屏幕表現爲一個單一的實體。我的意思是,如果用戶在執行查詢期間最小化主應用程序,那麼進度屏幕也會最小化。如果他們最大化或使主應用程序備份,進度屏幕也會恢復(並在前面)。如何讓子窗口最小化和最大化與主窗口
我試圖通過使用_StateChanged事件並操縱裏面的進度屏幕,但它不工作。 WriteLines按照他們應該的方式觸發,但進度屏幕沒有變化(即,當我最大化主應用程序時,進度屏幕沒有得到最大化)。
private void mainWindow_StateChanged(object sender, EventArgs e)
{
Console.WriteLine("State Changed");
// if the progress screen is not null
if (ql != null)
{
// if main application has been minimized
if (this.WindowState == WindowState.Minimized)
{
Console.WriteLine("State Changed to Minimized");
ql.WindowState = WindowState.Minimized; // minimize progress screen
}
// if main application has been set to normal
if (this.WindowState == WindowState.Normal)
{
Console.WriteLine("State Changed to Normal");
ql.WindowState = WindowState.Normal; // set progress screen state to normal
ql.Focus(); // bring progress screen to focus
}
// if main application has been maximized
if (this.WindowState == WindowState.Maximized)
{
Console.WriteLine("State Changed to Maximized");
ql.WindowState = WindowState.Maximized; // set progress screen state to maximized
ql.Focus(); // bring progress screen to focus
}
}
}
我很好奇,如果有在,我應該充分利用,而不是試圖用代碼來實現這一點的.xaml性能。如果沒有,我的代碼丟失了什麼?
由於父窗口和子窗口都是視圖,因此綁定到數據模型並不合適,因此您可以嘗試直接綁定到窗口狀態屬性,請參閱https://msdn.microsoft.com/en-us/library /system.windows.window.windowstate(v=vs.110).aspx但是這在 – MikeT