기본 창 (양식) 경계선을 숨기고 (광산을 사용하고 싶지만) 스냅과 그림자를 사용할 수 있습니까?국경없는 상당한 크기의 응용 프로그램 (FormBorderStyle = Sizable)
(데스크톱) Win 8을 개발하면서 DWM API 함수 또는 그와 비슷한 것으로 생각했습니다.
추신 : 저는 DWM을 처음 사용했습니다.
기본 창 (양식) 경계선을 숨기고 (광산을 사용하고 싶지만) 스냅과 그림자를 사용할 수 있습니까?국경없는 상당한 크기의 응용 프로그램 (FormBorderStyle = Sizable)
(데스크톱) Win 8을 개발하면서 DWM API 함수 또는 그와 비슷한 것으로 생각했습니다.
추신 : 저는 DWM을 처음 사용했습니다.
좋아, 결국 내 문제에 대한 해결책을 찾았습니다.
원래 WinForms를 사용하고 있었지만 수년 동안 WPF로 변경되었습니다.
WPF에는 새로운 Windows 반복이있을 때마다 Window 내용/&이 변경되는 창 프레임/홀더 인 WindowChrome이라는 것이 있습니다.
Window의 WindowChrome 속성을 정말 쉽게 변경할 수있는 기능이 있다는 것을 알았습니다. 나는 사람이 기능을 사용하고자하는 경우 이해하기 주석이 쉽게 만들어 희망
/// <summary>
/// Changes the WindowChrome of selected Window (wnd) & adjust its properties
/// </summary>
/// <param name="wnd">Window to affect</param>
/// <param name="glassThickness">Thickness of glass border (0 - no glass = no shadow, lower than 0 - whole window, higher than 0 - real border)</param>
/// <param name="resBorder">Thickness of resize border - where Windows natively supports resizing of the window</param>
/// <param name="topMove">Height of the window header/title - Windows native support for changing position of the window (from top), disables mouse events of controls underneath it</param>
/// <remarks></remarks>
public void NiceChrome(Window wnd, Thickness glassThickness, Thickness resBorder, int topMove)
{
WindowStyle = WindowStyle.SingleBorderWindow;
Shell.WindowChrome.SetWindowChrome(wnd, new Shell.WindowChrome
{
ResizeBorderThickness = resBorder,
GlassFrameThickness = glassThickness,
UseAeroCaptionButtons = false,
CaptionHeight = topMove,
CornerRadius = new CornerRadius(0),
NonClientFrameEdges = Shell.NonClientFrameEdges.None
});
}
:
는 내가 새로운 크롬의 속성을 전달할 수 있습니다 내 자신의 기능을했다. 또한 두께 (-1)를glassThickness
에 사용하면 전체 창에 창 아래에 유리가 생기고 창 밖에서는 추가 공간/경계선이 없지만 여전히 그림자 효과가 유지된다는 것을 알았습니다.
또 다른 참고 사항은 최대화하면서 창 패딩을 변경해야한다는 것입니다. Windows가 더 이상 존재하지 않는 테두리/유리를 계속 잘라 내기를 원하기 때문입니다.
추신 : 영어가 모국어가 아닙니다. 문법에 문제가 있으면 수정하는 동안 문제를 해결하십시오. 감사합니다 & 예 저는 거의 2 세 (내 appologies) 내 자신의 질문에 대답하고 있습니다.
테두리를 숨기지 않고 테두리를 기본 테두리 위에 페인트 해보십시오. NC_PAINT 메시지를 차단하십시오. 그렇게하면 Windows 크기 조정 기능을 사용할 수 있습니다. –
좋은 답변이지만, def 테두리를 숨기려면 ... WindowStyles와 함께 ... 어떻게해야합니까?! – VentyCZ
완료, 더 이상 도움이 필요하지 않습니다. – VentyCZ