简体版本
ParentWindow.ShowDialog()
ParentWindow.Hide()
ChildWindow.ShowDialog()
ParentWindow.Visibility = Visibility.Visible
我检查了一下,ParentWindow为IsInitialized
,IsLoaded
和IsVisible
返回了true。我还在所有窗户上按Alt键轻敲来寻找它-它没有藏在任何东西下面。
为什么我在任何地方都看不到ParentWindow?
完整版本
parseSettingsWindow.ShowDialog()
ParentWindow.Hide()
b。 parseSettingsWindow.GoToNextWindow标志设置为true(下一个窗口是“修复选择器”)while
循环执行fixSelector.ShowDialog()
,因为尚未加载while
循环,进入“大小写”“分析设置”部分parseSettingsWindow.Visibility = Visibility.Visible
我检查了一下,当在“解析设置”的IsInitialized
行暂停执行时,parseSettingsWindow在即时窗口中为IsLoaded
,IsVisible
和break;
返回true while
循环部分。我还在所有窗户上按Alt键轻敲来寻找它-它没有藏在任何东西下面。
为什么在任何地方都看不到parseSettingsWindow?
主班
public static bool UserPromptedSettingsWereWrittenToModel(ref Model model, ref ActiveFixes activeFixes, ref ActiveReports activeReports)
{
var viewModel = new ViewModel();
var parseSettingsWindow = new ViewPlusViewModel.ParseSettings();
parseSettingsWindow.InitializeComponent();
var fixSelector = new ViewPlusViewModel.FixSelector(viewModel);
fixSelector.InitializeComponent();
var seeAllFixesReports = new ViewPlusViewModel.SeeAllFixesReports();
seeAllFixesReports.InitializeComponent();
parseSettingsWindow.ShowDialog();
var nextWindowToOpen = "Fix Selector";
while (parseSettingsWindow.GoToNextWindow == true && fixSelector.GoToNextWindow == false)
{
switch(nextWindowToOpen)
{
case "Fix Selector":
if (fixSelector.IsLoaded)
{
fixSelector.Visibility = Visibility.Visible;
}
else
{
fixSelector.ShowDialog();
}
nextWindowToOpen = "Parse Settings";
break;
case "Parse Settings":
parseSettingsWindow.GoToNextWindow = false;
parseSettingsWindow.Visibility = Visibility.Visible;
nextWindowToOpen = "Fix Selector";
break;
}
}
if (parseSettingsWindow.GoToNextWindow == false)
{
parseSettingsWindow.Close();
if (fixSelector.IsLoaded) fixSelector.Close();
if (seeAllFixesReports.IsLoaded) { seeAllFixesReports.Close(); }
return false;
}
parseSettingsWindow.Close();
fixSelector.Close();
if (seeAllFixesReports.IsLoaded) { seeAllFixesReports.Close(); }
return true;
}
ParseSettingsWindow.cs
private void GoToNextWindow_Click(object sender, RoutedEventArgs e)
{
this.GoToNextWindow = true;
this.Hide();
}
答案 0 :(得分:0)
您无法通过.ShowDialog()
重新打开隐藏的Window.Visibility
窗口。您需要再次使用.ShowDialog()
。此外,即使再次使用IsCancel = True
,具有ShowDialog()
属性的所有按钮也将不再具有该功能,因此对该按钮的按下将需要手动进行处理。