2016-07-22 3 views
2

나는 codeplex에서 사용할 수있는 WPUI 용 ModernUI (MUI)를 사용하고 있습니다. 좋은 프레임 워크이고 내 페이지의 컨테이너로 사용하는 데 문제가 없습니다.대화 상자 창에서 모든 대화 버튼을 숨기거나 제거하는 방법

사용자 지정 대화 상자 창이 추가되었지만 기본 단추를 사용하고 싶지 않습니다. 닫기 버튼 대신 표시,

this.Buttons = new Button[] { this.OkButton, this.CancelButton }; 

그러나 :

init 메소드에서

나는이 줄을 주석 한?

아이디어가 있으십니까?

감사

답변

0

는 WPF가없는 제목 표시 줄의 닫기 버튼을 숨길 수있는 속성에 내장,하지만 당신은 P/호출의 몇 줄의 그것을 할 수 있습니다. 당신이 가고있다

var hwnd = new WindowInteropHelper(this).Handle; 
SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU); 

을 그리고 :

private const int GWL_STYLE = -16; 
private const int WS_SYSMENU = 0x80000; 
[DllImport("user32.dll", SetLastError = true)] 
private static extern int GetWindowLong(IntPtr hWnd, int nIndex); 
[DllImport("user32.dll")] 
private static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong); 

그런 다음 윈도우의로드 이벤트에서이 코드를 넣어 :

먼저, 윈도우 클래스에이 선언을 추가 더 이상 닫기 버튼을 클릭합니다. 제목 표시 줄의 왼쪽에 창 아이콘이 없기 때문에 제목 표시 줄을 마우스 오른쪽 단추로 클릭해도 시스템 메뉴가 나타나지 않습니다. 모두 함께 표시됩니다.

Alt + F4는 여전히 창을 닫습니다. 백그라운드 스레드가 완료되기 전에 창이 닫히지 않게하려면 Gabe가 제안한대로 OnClosing을 무시하고 Cancel을 true로 설정할 수 있습니다.

+0

감사하지만 제목 표시 줄에 대해 이야기하는 것이 아닙니다. 현대 UI 프레임 워크가 제공하는 대화 상자에 대해 이야기하고 있습니다. –

+0

스냅 샷도 공유 할 수 있습니까? – Lakhtey

관련 문제