如何获得包括非客户区域的窗体的总高度?大小似乎不适用于我的窗口(FormBorderStyle = FixedToolWindow,如果有帮助)。获取包含非客户区域的窗体的总高度?
1
A
回答
2
尝试表单的DesktopBounds属性。
2
Size属性应该可以工作。请注意,由于设计机器和生产机器之间系统字体或视频适配器DPI设置的差异,表单可能会重新缩放。在Load事件之前,实际尺寸将不可用。
0
如果启用了Aero并且您的FormBorderStyle
为FixedToolWindow
,则Windows将对该表单的大小进行说明。我认为Form
中的以下代码将给出这种窗口的正确高度和宽度。
[DllImport("dwmapi.dll", PreserveSig = false)]
public static extern bool DwmIsCompositionEnabled();
// When Aero is enabled, and our FormBorderStyle is FixedToolWindow,
// Windows will lie to us about our size and position.
public bool AeroIsMessingWithUs()
{
bool ret = false;
// check for other Fixed styles here if needed
if (FormBorderStyle == System.Windows.Forms.FormBorderStyle.FixedToolWindow)
{
if (Environment.OSVersion.Version.Major >= 6 && DwmIsCompositionEnabled())
{
// Aero is enabled
ret = true;
}
}
return ret;
}
public int MyWindowHeight()
{
int height = Height;
if (AeroIsMessingWithUs())
{
// there are actually 5 more pixels on the top and bottom
height += 10;
}
return height;
}
public int MyWindowWidth()
{
int width = Width;
if (AeroIsMessingWithUs())
{
// there are 5 more pixels on the left and right
width += 10;
}
return width;
}
相关问题
- 1. 用户窗体的高度属性是否包含框架?
- 2. Win32中的非客户区域消息
- 3. 如何将控件添加到自定义窗体的非客户区域
- 4. 屏蔽的MovieClip区域包含在高度
- 5. C#WinForms - Real(包括非客户端)FixedToolWindow高度和宽度
- 6. 如何获取遮罩区域的宽度和高度
- 7. 获取网页的身体或窗口的高度和宽度
- 8. 如何在运行Aero时确定ACTUAL窗体的窗体大小(包含所有非客户端元素)?
- 9. 获取Windows窗体C#的宽度和高度用户单击恢复后
- 10. 窗体在客户端桌面区域内移动
- 11. 获取窗口高度
- 12. 获取元素的总高度?
- 13. jQuery:获取HTML文档的总高度
- 14. itextsharp:获取表的总高度
- 15. 如何在Android上获取屏幕工作区域的高度
- 16. 获取包含滚动条的文档内容的高度javascript
- 17. Directwrite:获取字体高度
- 18. 获取每个客户的总发票
- 19. 如何在包含堆积区域图的高库(highcharts)上制作多窗格?
- 20. 如何将非客户区域扩展到比16像素薄的窗口?
- 21. 如何获取窗口客户区的坐标
- 22. 实时获取窗口高度/宽度
- 23. 按区域获取总订单
- 24. 获取字体的最大高度
- 25. 获取安全区域插入顶部和底部高度
- 26. 如何获得窗口客户区域的每个像素的RGB值数组
- 27. 获取与区域接壤的区域
- 28. 获取所有包含[name]的跨度
- 29. Outlook 2003窗体区域
- 30. 使用IDirect3DDevice9 :: SetCursorProperties时,非客户区域上的光标闪烁
如果`FormBorderStyle`是`FixedToolWindow`,那么我不认为`DesktopBounds`比`Size`提供更好的答案。如果启用Aero,我认为这两者都不正确。 – 2013-11-21 23:47:44