gpt4 book ai didi

WPF WindowStartupLocation ="CenterOwner"没有真正居中,并且到处弹出,为什么?

转载 作者:行者123 更新时间:2023-12-02 01:32:16 25 4
gpt4 key购买 nike

好吧this问题和this问题相似,但没有有效的答案。事实上,我希望 WindowStartupLocation=CenterOwner 能够工作......但事实并非如此。似乎将新窗口居中于网格列的中心,而不是主窗口的中心。所以我假设它认为那是 parent 。其次,当我关闭对话框并再次打开它时,它不是居中的,而是从之前的位置向下和向右移动。如果我将主窗口移动到第二个显示器,弹出窗口仍会在默认显示器上打开。这些属性是错误的还是我只是认为它应该以不同的方式工作。我想我可以手动计算顶部和左侧属性。我只是希望弹出窗口位于主窗口的中心,无论它在哪里。

最佳答案

可能是因为您没有设置所有者:

this.Owner = App.MainWindow; // for example

我就是这样做的,它始终使窗口完美居中。

为了扩展 Will Eddins 的评论,您可以在窗口中为 ShowDialog() 或 Show() 创建一个重载方法:

public void ShowDialog(Window owner)
{
this.Owner = owner;
this.ShowDialog();
}

public void Show(Window owner)
{
this.Owner = owner;
this.Show();
}

或者重载构造函数:

public MyWindow(Window owner)
: this()
{
this.Owner = owner;
}

关于WPF WindowStartupLocation ="CenterOwner"没有真正居中,并且到处弹出,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3452854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com