質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

Q&A

2回答

1200閲覧

画面サイズが変わってもウィンドウサイズを自動変更させないようにしたい

workr

総合スコア158

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

0グッド

1クリップ

投稿2017/08/21 03:29

C# で Windows 10 タブレット向けの GUI アプリケーションを作っています。
デスクトップモードで使う前提で、リサイズ可能なウィンドウを持ちます。

Windows タブレットでは基本的に本体を横長から縦長に回転させたとき、アプリケーションウィンドウの幅が画面幅を超えるときは画面に収まるように自動縮小されると思います。
再度縦長に戻した場合でも一度縮小されたものはそのままなので最初の状態には戻りません。
この動作自体は仕様なので問題とは考えていません。

最小化した状態では本体の回転による影響を受けません。
最小化→横長→縦長→横長 と回転させたとしても最小化の状態ならもとのサイズに戻すことができます。

作っているアプリケーションはタスクトレイ常駐型でタスクメニューには格納せず、Visible = false によって非表示にしています。
この状態で 非表示→横長→縦長→横長 と回転させた場合、縦長に合わせてウィンドウ幅が自動縮小され、再度表示した際にサイズが変わってしまいます。

そこで、非表示後に最小化する処理を加えました。

C#

1// タスクバーには表示しない 2Form1.ShowInTaskbar = false; 3 4// 最小化時 5Form1.Visible = false; 6Form1.WindowState = FormWindowState.Minimized;

最小化、復元自体はできているようにみえるのですが、最小化していても本体の回転により自動縮小されてしまいます。
試しに Visible = false を削除し、単純に最小化するだけにしてみたところ最小化中は本体の回転の影響を受けませんでした。しかし Visible = false がないと ShowInTaskbar = false なので最小化時にタスクメニューの上にコンパクトに表示されるだけで完全には消えてはくれません。最小化時は完全に消えた状態にしたいです。

このような状況で、最小化中は本体の回転の影響で自動リサイズされるのを防ぐにはどのようにすればいいのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

CSSでの幅指定において、長さの単位にvwを使えばよいのではないでしょうか。ブラウザの幅の変更に動的に対応するデザインが作れるかと思いますが。
CSS には vw, vh, vmin, vmax という単位がある

すみません。題意を読み違えていました。削除申請中。

投稿2017/08/21 14:27

編集2017/08/21 14:31
KojiDoi

総合スコア13669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

直接的な回答ではなく、回避の一案ですいません。
SystemEvents.DisplaySettingsChanged イベントを拾って、画面解像度によりウィンドウサイズを変更する対応はどうでしょうか?

投稿2017/08/21 04:48

koguma98

総合スコア288

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問