【问题标题】:Get size from ShowDialog从 ShowDialog 获取大小
【发布时间】:2014-12-15 15:15:28
【问题描述】:

用户可以更改 NavigationWindow 的大小和位置
我想在用户关闭对话框时捕获高度、宽度、左侧和右侧
我怎样才能做到这一点?

NavigationWindow help = new NavigationWindow();
help.Content = new PageHelp2("Fields");
help.Height = 600;
help.Width = 800;
help.ShowDialog();

目的是在下次显示帮助时将其显示为最后的尺寸和位置。

【问题讨论】:

  • 这不是ShowDialog() 返回的东西。你想Remember window size between session吗?
  • @CodeCaster 我已经用他们的主窗口做到了。在会话中,当他们下次提出帮助时,我希望它具有相同的大小和位置。
  • 所以对所有窗口执行相同操作。 :)
  • 无论何时他们打开“帮助”窗口,大小和位置都相同。现在“帮助”可能是关于不同主题的 - 在 ctor 中传递。
  • 是的,当然,如果您为所有窗口引用相同的变量,它们将具有相同的大小和位置。如果您希望每个帮助主题都具有唯一性,则必须将坐标保存在字典中,例如 "Help_Fields_X""Help_Foos_X"。您的问题的答案是“您不能”,如果您需要帮助修复您的代码,您应该显示您的代码。

标签: .net wpf showdialog


【解决方案1】:

您可以使用Window.Closing eventWindow.Closed event 捕捉窗口关闭的瞬间。请务必阅读前者的备注,因为该事件不会总是被引发。

public void ShowHelp()
{
    NavigationWindow help = new NavigationWindow();
    help.Closing += HelpWindow_Closing;
    help.Content = new PageHelp2("Fields");
    //
    help.ShowDialog();
}

void HelpWindow_Closing(object sender, CancelEventArgs e)
{
    var window = sender as Window;

    // Do your thing
    window.Height;
    window.Width;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-06
    • 2020-03-14
    • 2011-12-15
    • 2014-07-04
    • 2015-07-27
    • 2019-12-13
    • 1970-01-01
    相关资源
    最近更新 更多