【问题标题】:c# - easy way to get maximum window x/y bounds?c# - 获得最大窗口 x/y 边界的简单方法?
【发布时间】:2011-04-28 17:13:17
【问题描述】:

我有一个自定义样式的透明窗口,当您使用透明度和“WindowStyle=None”时,我看到很多处理最小/最大/调整大小行为的问题。

当我告诉我的窗口将其窗口状态更改为最大化时,它并没有正确,所以我想覆盖那里的逻辑。它得到了正确的宽度,但高度都搞砸了,它不知道添加填充来解释外发光效果。

如果不使用 win32 函数,我是否有一种简单的方法可以确定应用程序在其上运行的显示器的“最大视口”或“最大边界”?我认为这个问题的简短答案可能是否定的,但我想我还是会问。我为应用程序设置了最小/最大宽度和高度,我想如果有一些函数可以调用来让我回到 ax/y 最大边界,那么我可以在减去之后将窗口高度和宽度设置为这些值填充。我的目的是支持从 1024x768 到 1920x1080 的分辨率,以便此应用程序可以在多个位置显示而无需重新配置。

【问题讨论】:

  • 我将尝试实现 Lester Lobo 的自定义窗口镶边技术,但感觉这应该比从我的自定义样式窗口中获得“正确”最大化行为更简单。我只是讨厌我失去所有窗口功能只是为了“重新设计”我的主窗口。感觉非常“un-wpf”,因为一切都应该重新设计到第 n 度。
  • 我最终使用了自定义 chrome 技术并重新设置了主窗口的样式。比我预期的要多一点工作,但最后我学到了一些东西,所以我想这不是浪费精力。

标签: c# height width max


【解决方案1】:

看看Screen.PrimaryScreen Property。它有一个名为GetWorkingArea 的方法,我认为这是您想要的。

如果有多个显示器,则有一些方法可以枚举显示器并找出应用程序在哪个显示器上。

【讨论】:

  • 啊,这是在 system.windows.forms 命名空间中。有人告诉我,在我的 wpf 项目中引用该库是不可以的,因为性能缺陷。你有使用这个的第一手经验吗?
  • @TWood - 我没有广泛使用它或在时间紧迫的领域使用它,但它确实工作正常。
猜你喜欢
  • 2010-10-25
  • 2011-01-17
  • 1970-01-01
  • 1970-01-01
  • 2011-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多