1

我有一个没有回答的问题

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/fa521007-f317-48f1-9cdd-de2dbcb17aa8

(最后的帖子是我的帖子)。StackOverflow 是更好的论坛,所以你能帮助我吗:)

简要地:

  • 双显示器配置,右侧的主显示器分辨率较低,左侧显示器的分辨率较高(低:1280x1024;高:1680x1050)。最大化较大时,窗口大于监视器(仅适用于左侧监视器)
  • 处理无边框窗口基类
  • 最大化实际客户区不能按预期工作。通过添加 WndProc 钩子并摆弄大小参数来解决。多显示器支持增加了一些问题,因为最大化似乎依赖于 MaxTrackSize 而不是 MaxSize。这似乎仅在主显示器小于第二显示器时才会发生

我在规范中发现的东西:

http://msdn.microsoft.com/en-us/library/ms632605(v=VS.85).aspx

对于具有多个监视器的系统,ptMaxSize 和 ptMaxPosition 成员描述了主监视器上窗口的最大化大小和位置,即使窗口最终在辅助监视器上最大化。在这种情况下,窗口管理器会调整这些值以补偿主监视器和显示窗口的监视器之间的差异。因此,如果用户保持 ptMaxSize 不变,则监视器上大于主监视器的窗口将最大化为较大监视器的大小。

因此,如果我在我的情况下理解正确,当任务栏放置在不将其隐藏在最大化窗口下时,不可能以更高分辨率在屏幕上最大化?

干杯,jbk

4

2 回答 2

0

您可以实现自己的“最大化”:

  1. 使用Screen.FromControl确定表单驻留在哪个屏幕上
  2. 根据屏幕的偏移量和大小设置 Formaccording 的偏移量和大小。
  3. 您可以根据需要使用 Screen 的 WorkingArea(桌面区域)或 Bounds(带有工具栏的整个屏幕)。

*如果您想隐藏工具栏并成为事实上的“全屏”,我认为您需要将表单设置为 TopMost。

于 2011-02-16T10:37:38.577 回答
0

这对我有用:

  1. FormBorderStyle设置为FixedSingle - 可能也适用于其他样式!= None,尚未测试...
  2. WindowState设置为FormWindowState.Maximized
  3. 将FormBorderStyle重置为

至少,它适用于纯 WinForms 的东西,而无需诉诸 WinAPI

于 2013-06-14T11:17:15.773 回答