비 클라이언트 영역을 포함하여 Windows 폼의 전체 높이를 얻는 방법은 무엇입니까? 크기가 내 창에서 작동하지 않는 것 같습니다 (FormBorderStyle = FixedToolWindow, 도움이되는 경우).비 클라이언트 영역을 포함하여 Windows 폼의 전체 높이를 가져 옵니까?
1
A
답변
2
폼의 DesktopBounds 속성을 사용해보십시오.
2
크기 속성이 올바르게 작동해야합니다. 디자인 시스템과 프로덕션 시스템 사이의 시스템 글꼴 또는 비디오 어댑터 DPI 설정의 차이로 인해 양식이 재조정 될 수 있습니다. 실제 크기는 Load 이벤트까지 사용할 수 없습니다.
0
에어로를 사용하고 FormBorderStyle
이 FixedToolWindow
인 경우 Windows에서 양식의 크기를 알 수 있습니다. 나는 Form
에있는 다음 코드가 그러한 Window의 정확한 높이와 너비를 제공한다고 생각합니다.
[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. VB6에서 현재 윈도우/폼의 hWnd를 가져 옵니까?
- 3. PHP로 전체 URL을 가져 옵니까?
- 4. AllowTransparency를 사용하지 않고 WPF 창의 비 클라이언트 영역을 제거하는 방법
- 5. 전체 클라이언트 영역을 사용하는 하위 양식?
- 6. 투명 비 클라이언트 영역
- 7. 비 Windows OLAP 데스크톱 클라이언트?
- 8. 전체 셀 높이를 차지하도록 div 가져 오기
- 9. PHP로 QuickTime 클립 (.mov)의 너비와 높이를 가져 옵니까?
- 10. winforms에서 전체 클라이언트 영역을 차지할 컨트롤을 최대화 구현?
- 11. 전체 클라이언트 rect를 얻는 방법?
- 12. UITableViewCell의 전체 높이를 얻는 방법?
- 13. 엘레멘트의 전체 높이를 얻으시겠습니까?
- 14. Windows 7의 작업 표시 줄에있는 Windows 목록을 가져 옵니까?
- 15. socket.io에있는 메시지 발신자의 클라이언트 ID를 가져 옵니까? 서버 측에서
- 16. 웹 브라우저를 통해 클라이언트 마이크에서 스트림을 가져 옵니까?
- 17. 문자열에서 keyCode를 가져 옵니까?
- 18. 현재 UIView를 가져 옵니까?
- 19. URLLoader에서 URL을 가져 옵니까?
- 20. 원격 컴퓨터의 세션 정보를 가져 옵니까?
- 21. AssociateColorProfileWithDevice, DeviceName은 어디에서 가져 옵니까?
- 22. 왜이 코드는 .NET 폼의 높이를 조절하여 폼을 너무 작게 만들었습니까?
- 23. ListField의 전체 높이를 어떻게 제한합니까?
- 24. 파일 무시를 포함하여 전체 저장소를 분기하는 방법
- 25. 하위 폼의 컨트롤을 포함하여 폼의 모든 컨트롤을 반복하는 방법 - Access 2007
- 26. VB 6 : 서식 안의 영역을 어떻게 찾습니까?
- 27. 폼의 인스턴스를 가져 오는 함수
- 28. XMPP 클라이언트 비 호환성
- 29. 자바 비 차단 클라이언트
- 30. WCF 요청의 도메인 이름을 가져 옵니까?
'FormBorderStyle'이 FixedToolWindow 인 경우, 'DesktopBounds'가 'Size'보다 더 나은 대답을 제공한다고 생각하지 않습니다. Aero가 활성화되어 있으면 두 가지 모두 올바르지 않다고 생각합니다. –