在 Windows 10 平板电脑模式下,对话框显示在父级后面
Dialog shows behind parent in Windows 10 Tablet Mode
我有一个带有显示对话框的窗体的 Winforms 应用程序:
using (MyForm form = new MyForm)) {
form.ShowDialog(this);
}
显示的对话框具有以下属性:
StartPosition = CenterParent
ControlBox = True
MaximizeBox = True
MinimizeBox = True
FormBorderStyle = Sizable
通常情况下,表单会以模态方式显示在调用表单的顶部。但是,当 运行 in Windows 10 在平板电脑模式下(就像在移除键盘的 Surface Pro 3 上一样),表单显示在调用表单的后面并且无法访问它,因为一切都已满屏幕。
是否有任何我可以更改的设置来防止这种行为(除了告诉用户不要使用平板电脑模式)?
嗯,这很愚蠢。我查看了另一种显示为实际有效的对话框的形式。差异:
MaximizeBox = False
删除最大化表单的功能后,它就会按照您的预期显示。有趣的是从来没有必要最大化表格;它只是保留了默认值。
如果其他人在 WPF 中寻找相同问题的解决方案时偶然发现这个问题:
在对话框上指定 ShowInTaskbar="False" 对我有用。
我有一个带有显示对话框的窗体的 Winforms 应用程序:
using (MyForm form = new MyForm)) {
form.ShowDialog(this);
}
显示的对话框具有以下属性:
StartPosition = CenterParent
ControlBox = True
MaximizeBox = True
MinimizeBox = True
FormBorderStyle = Sizable
通常情况下,表单会以模态方式显示在调用表单的顶部。但是,当 运行 in Windows 10 在平板电脑模式下(就像在移除键盘的 Surface Pro 3 上一样),表单显示在调用表单的后面并且无法访问它,因为一切都已满屏幕。
是否有任何我可以更改的设置来防止这种行为(除了告诉用户不要使用平板电脑模式)?
嗯,这很愚蠢。我查看了另一种显示为实际有效的对话框的形式。差异:
MaximizeBox = False
删除最大化表单的功能后,它就会按照您的预期显示。有趣的是从来没有必要最大化表格;它只是保留了默认值。
如果其他人在 WPF 中寻找相同问题的解决方案时偶然发现这个问题:
在对话框上指定 ShowInTaskbar="False" 对我有用。