我需要让我的应用程序如下(C#WPF应用程序):启用最大化,最小化和WPF还原窗口(手动调整大小是禁用)
- 拥有1024 * 768
- 正常大小用户可以最大限度的应用
- 用户可以最大限度地减少应用程序
- 用户可以恢复
- 用户无法手动draging其边框调整应用程序的应用(1024 * 768)。
没有任何ResizeMode
满足所有这些要求。有什么办法可以做吗?
我需要让我的应用程序如下(C#WPF应用程序):启用最大化,最小化和WPF还原窗口(手动调整大小是禁用)
没有任何ResizeMode
满足所有这些要求。有什么办法可以做吗?
您可以侦听Window.SizeChanged事件,并在处理程序内部手动将宽度和高度设置回1027和768.它仍然允许用户拖动窗口的边缘来调整大小,但是随后窗口返回到它的设置尺寸。这样做的缺点是,无论用户何时尝试调整大小,窗口都会“癫痫发作” - 而不是最美丽的事情。正常工作最大限度地减少和最大化工作。
谢谢,我已经试过那个。我遇到的闪烁(“癫痫”)让我在一开始就留下了这个想法。 – Nir 2010-02-02 14:23:57
我终于找到了一个相对体面的解决方案。
想法是覆盖窗口的事件,取消最小/最大约束并刷新它。
如果没有最大化的窗口,我们简单地套用背面的最小/最大约束
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);
}
我知道5年后我问了这个问题,但是这里是什么'm_isDuringMaximizing'? – 2015-06-30 01:03:03
通过添加窗口爆破性质'身高=“1024” WIDTH =“768” ResizeMode =“CanMinimize”'你可以实现除第2点以外的所有内容。 – ChrisF 2010-02-01 12:29:34
您能否告诉我们为什么您要将窗口固定在某个尺寸?它可以帮助我们想出一些解决方案。 – 2010-02-02 11:52:18
我正在研究呈现医学图像的医疗计划。传统程序的固定大小为1024 * 768。因此,对于老客户,我们需要将其作为基本解决方案进行维护。 我们希望能够选择最大化窗口,以便我们可以在某些分辨率下检查程序,无需测试所呈现图像的质量,以防用户将应用程序调整为非标准尺寸 – Nir 2010-02-02 14:22:30