2

最小化ボタンを無効にする方法を知りたいのですが、最大化/復元ボタンと閉じるボタン (赤い「X」) はそのままにしておきます。

これは、ウィンドウの右上にあるボタンを次のように表示したいイメージです。

ここに画像の説明を入力

4

4 に答える 4

6

ここで PInvoke を使用する必要がある場合があります。基本的に、SetWindowLong および GetWindowLong 関数をインポートし、対応するフラグをそのハンドル (hwnd) を使用して Win API ウィンドウに設定します。

private const int GWL_STYLE = -16;
private const int WS_MINIMIZE = -131073;
[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);

private static void CanMinimize(Window w)
{
  var hwnd = new WindowInteropHelper(w).Handle;
  long value = GetWindowLong(hwnd, GWL_STYLE);
  SetWindowLong(hwnd, GWL_STYLE, (int)(value & ~WS_MINIMIZE));
} 
于 2013-05-05T06:51:11.590 に答える
1

Blablablaster は基本的に正しいです。いくつかの Windows API 呼び出しを P/Invoke する必要があります。ただし、次の TechNet 記事では、いつどこで Windows API を呼び出す必要があるかについても説明しています。

WPF: ウィンドウの最小化、最大化、または閉じるボタンを無効化または非表示にする

お役に立てれば。

于 2015-02-18T11:57:07.350 に答える