我需要在我的应用程序(C#WPF应用程序)上启用以下内容:
没有任何ResizeMode
满足所有这些要求。有什么办法吗?
答案 0 :(得分:6)
我终于找到了一个相对不错的解决方案。
我们的想法是覆盖窗口的OnStateChanged
事件,取消最小/最大约束并刷新它。
如果窗口未最大化,我们只需应用最小/最大约束
protected override void OnStateChanged(EventArgs e)
{
if (WindowState == WindowState.Maximized)
{
MinWidth = 0;
MinHeight = 0;
MaxWidth = int.MaxValue;
MaxHeight = int.MaxValue;
if (!m_isDuringMaximizing)
{
m_isDuringMaximizing = true;
WindowState = WindowState.Normal;
WindowState = WindowState.Maximized;
m_isDuringMaximizing = false;
}
}
else if (!m_isDuringMaximizing)
{
MinWidth = 1024;
MinHeight = 768;
MaxWidth = 1024;
MaxHeight = 768;
}
base.OnStateChanged(e);
}
答案 1 :(得分:0)
您可以收听Window.SizeChanged事件,并在处理程序内手动将Width和Height设置回1027和768.它仍然允许用户拖动窗口的边缘以调整大小,但随后窗口返回到它的设置大小。这样做的缺点是,只要用户尝试调整大小,窗口就会出现“癫痫发作” - 这不是最令人讨厌的事情。最大限度地减少工作并最大限度地发挥作用。