我有一个使用Form并将FormBorderStyle设置为“None”的应用。
问题在于,如果用户点击“显示桌面”按钮(有效地最小化所有打开的窗口),然后从任务栏恢复其中一个表单,则将恢复所有无边框表单。
注意:如果在单击“显示桌面”按钮之前显式最小化了窗体(即WindowState = FormWindowState.Minimized),则会导致该特定窗体的预期行为。
另请注意,对于常规表单甚至没有边框的WPF窗口,情况并非如此。
Form.Designer.cs:
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
Form.cs:
private void MinimizeButton_Click(object sender, EventArgs e)
{
// If minimized explicitly, form behaves appropriately
WindowState = FormWindowState.Minimized;
}
关于为什么会出现这种情况/如何解决问题的想法?
答案 0 :(得分:2)
我认为这只是默认行为,因为无边框形式不应该被最小化。
查看this帖子。希望它可以帮助您更改此默认行为。
从帖子(添加到表单):
const int WS_MINIMIZEBOX = 0x20000; const int CS_DBLCLKS = 0x8; protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.Style |= WS_MINIMIZEBOX; cp.ClassStyle |= CS_DBLCLKS; return cp; } }