2010-10-21 13 views
0

我有一个自定义风格的透明窗口,当你使用透明度和“WindowStyle = None”时,我已经看到很多处理min/max/resize行为的问题。c# - 简单的方法来获得最大的窗口x/y界限?

当我告诉我的窗口改变它的windowstate来最大化它并没有得到它的权利,所以我想覆盖那里的逻辑。它的宽度是正确的,但高度都是混乱的,它不知道添加填充来说明外层效应。

如果不使用win32函数,是否有一种SOMEWHAT EASY方法可以确定应用程序在其上运行的显示器的“max viewport”或“max bounds”?我想这个问题的简短答案可能不是,但我想我会问无论如何。我有我的最小/最大宽度和高度为应用程序设置,我想如果有一些函数,我可以打电话给我回到ax/y最大的界限,然后我可以设置窗口的高度和宽度,这些值后,我减填充。我的意图是支持从1024x768 - 1920x1080的分辨率,这样这个应用程序可以显示多个位置而无需重新配置。

+0

我将尝试实施Lester Lobo的自定义窗口镶边技术,但它只是觉得这应该比我的自定义样式窗口中的“正确”最大化行为更简单。我只是恨我失去了所有的窗口功能,只是为了“重做”我的主窗口。它感觉非常“un-wpf”,因为一切都应该重新调整到第n度。 – TWood 2010-10-21 17:11:17

+0

我结束了使用自定义铬技术和restyling我的主窗口。多一点工作比我预期的要多,但最终我学到了一些东西,所以我想这不是浪费精力。 – TWood 2010-11-10 17:26:41

回答

1

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

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

+0

啊,这是在system.windows.forms命名空间中。有人告诉我,在我的wpf项目中引用这个库文件是一个不行,因为性能上的缺陷。你有使用这个第一手的经验吗? – TWood 2010-10-21 16:54:56

+0

@TWood - 我没有广泛使用它或在时间关键领域,但它确实工作。 – ChrisF 2010-10-21 21:35:19

相关问题