[解決済み] サイズ変更可能なウィンドウから最小化ボタンと最大化ボタンを削除するには?
2023-03-19 02:41:55
質問
WPFでは、リサイズはできるが最大化・最小化ボタンがないウィンドウを作成する機能がありません。私は、サイズ変更可能なダイアログ ボックスを持つことができるように、そのようなウィンドウを作ることができるようにしたいと思っています。
解決策が pinvoke の使用を意味することは承知していますが、何をどのように呼び出すのかがわかりません。pinvoke.net を検索しても、私が必要とするものとして目に飛び込んでくるものはありませんでした。
CanMinimize
と
CanMaximize
プロパティをそのウィンドウに追加します。
どなたか、これを行う方法について、コード (C# が望ましい) を示していただけませんか。
どのように解決するのですか?
MSDNフォーラムで見つけたコードを拝借して、Windowクラスに以下のような拡張メソッドを作ってみました。
internal static class WindowExtensions
{
// from winuser.h
private const int GWL_STYLE = -16,
WS_MAXIMIZEBOX = 0x10000,
WS_MINIMIZEBOX = 0x20000;
[DllImport("user32.dll")]
extern private static int GetWindowLong(IntPtr hwnd, int index);
[DllImport("user32.dll")]
extern private static int SetWindowLong(IntPtr hwnd, int index, int value);
internal static void HideMinimizeAndMaximizeButtons(this Window window)
{
IntPtr hwnd = new System.Windows.Interop.WindowInteropHelper(window).Handle;
var currentStyle = GetWindowLong(hwnd, GWL_STYLE);
SetWindowLong(hwnd, GWL_STYLE, (currentStyle & ~WS_MAXIMIZEBOX & ~WS_MINIMIZEBOX));
}
}
覚えておくべき唯一の他のことは、何らかの理由でこれがウィンドウのコンストラクタから動作しないことです。私はこれをコンストラクタにチャックすることでそれを回避しました。
this.SourceInitialized += (x, y) =>
{
this.HideMinimizeAndMaximizeButtons();
};
これが役に立つといいのですが
関連
-
[解決済み] 他のスレッドからGUIを更新するにはどうすればよいですか?
-
[解決済み】Visual Studio 2015の追加デバッグオプションの無効化
-
[解決済み] WPF:幅(と高さ)をパーセント値で設定する
-
[解決済み] WPF フォントのぼやけ問題- 解決策
-
[解決済み] MVVMテンプレートの好例
-
[解決済み] グリッドカラムの幅・高さを設定する際の「Auto」と「*」の違いは何ですか?
-
[解決済み] テンプレートバインディングとバインディングとは?
-
[解決済み] ViewModelLocatorとは何ですか?また、DataTemplatesと比較した場合の長所と短所は何ですか?
-
[解決済み] Alt-Tabのプログラムスイッチャーからウィンドウを隠す最良の方法?
-
[解決済み] WPF 自分自身へのバインド
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
WPFバインディング(データバインディング)の使用方法
-
[解決済み] WPFでデータトリガーに複数の条件を指定するには?
-
[解決済み] ItemsControlの仮想化?
-
[解決済み] WPFウィンドウのハンドルを検索する
-
[解決済み] WPFの星は何をしているのか(Width="100*")
-
[解決済み] TwoWayまたはOneWayToSourceバインディングは、読み取り専用プロパティでは機能しません。
-
[解決済み] WPF標準のタブコントロールに選択されたタブが変更されたイベントはありますか?
-
[解決済み] WPFでボタンMouseOverのBackgroundを変更するには?
-
[解決済み] WPF ToolBar: グリップとオーバーフローを取り除く方法
-
[解決済み] WPF ToolkitのDataGridTemplateColumnでソートするにはどうしたらいいですか?