【发布时间】:2021-09-04 21:55:31
【问题描述】:
好的,我正在开发一个骰子游戏,我有游戏窗口和一个消息窗口,当我需要一个对话框时会打开。我发现如何使用 WindowStartupLocation="CenterOwner" 使消息窗口出现在其所有者的中心,问题是它隐藏了游戏窗口中显示的骰子以及一些消息,例如“恭喜你有一个系列!你赢了2500 点,但你的回合到此结束”我真的希望玩家能够在点击“结束你的回合”对话框按钮之前看到他的幸运和非常罕见的系列,这将为下一个玩家重置骰子显示。
我的问题是,有没有办法将子窗口的位置设置为比它的所有者中心高一点而不用硬编码?我觉得如果在我的游戏窗口设置为 CenterScreen 时通过为其 Top 和 Left 属性赋值来对其进行硬编码,游戏窗口内的消息位置将根据用户的屏幕而改变。
由于我找到了一种方法来重新定位我的“主页”窗口(我不知道如何用英文称呼它......)因为它的高度调整了,我希望有一种方法可以对我的消息做类似的事情窗口......问题是,这个没有调整大小,所以我不能使用我找到的方法......不过,这是我的“主页”窗口使用的方法,也许它会帮助想出一个想法?
protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo)
{
base.OnRenderSizeChanged(sizeInfo);
this.Top += (sizeInfo.PreviousSize.Height - sizeInfo.NewSize.Height) / 2;
}
【问题讨论】: