2016-07-22 16 views
2

私はModernUI for WPF(MUI)をcodeplexで使用しています。これは素晴らしいフレームワークで、私はページのコンテナとして使用する際に問題はありません。ダイアログウィンドウからすべてのダイアログボタンを非表示/非表示にするには

私はカスタムダイアログウィンドウを追加しましたが、デフォルトのボタンは使用しません。

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

しかし、閉じるボタンが代わりに表示されます。私はこの行をコメントアウトしているinitメソッドで

アイデア? WPFは、タイトルバーの[閉じる]ボタンを非表示にする組み込みのプロパティを持っていませんが、あなたはP /呼び出しの数行でそれを行うことができます

答えて

0

感謝。

まず、あなたのウィンドウクラスにこれらの宣言を追加します。

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); 

を次にWindowのLoadedイベントにこのコードを配置:

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

そして、そこに行くん:これ以上の[閉じる]ボタンを。また、タイトルバーの左側にウィンドウアイコンが表示されないため、タイトルバーを右クリックしてもシステムメニューが表示されません。

Alt + F4はまだウィンドウを閉じます。バックグラウンドスレッドが完了する前にウィンドウを閉じることを許可したくない場合は、Gabeが提案したように、OnClosingを上書きしてCancelをtrueに設定することもできます。

+0

ありがとうございますが、私はタイトルバーについて話していません。私は、現代のUIフレームワークによって提供されるダイアログウィンドウについて話しています。 –

+0

スナップショットも共有できますか? – Lakhtey

関連する問題