日記移転先(゜▽゜)

という名前の適当な日記ブログ


| Home | Index | Links | About |

Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

(.Net)Aero Snapで縦が戻らないに陥るのは


Formだけに発生する模様。

使うのは便利だが組む時には直でいじれないのが不便なAeroSnap、
なんとかしたいとまた色々ぐぐってたら新たな発見(´・ω・`)
Aero-Snap による Window サイズの変更を検出する - espresso3389の日記
http://espresso3389.hatenablog.com/entry/2015/11/20/025612

その辺調べるで色々いじって今頃気付いたのだがFormでAero Snapのリサイズ適用時
① 通常サイズ。
② [Win]+[Shift]+[↑]で縦のみ最大化。
③ [Win]+[↑]で最大化。
④ [Win]+[↓]で最大化解除

で画像のように一見②になるが①に戻せる手前ではない。
更に[Win]+[↓]で最小化しちゃう。(=通常時の縦サイズが②の値になる)
Form以外だとこうはならずに最大化状態から[Win]+[↓]等で①に戻る。

WPFや他では発生しない。

色々試したらWindows付属のソフト類ではこんな挙動をするものは一つもなかった…。
割と有名所なフリーソフトでこの癖が出てああこれFormだったのかと気付いたりも。

※一応最大化状態からでも[Win]+[→]、[←]などと画面右(左)半分化を経由して戻す事もできる。

とりあえずの対処はFormのResizeイベントでWindowState == FormWindowState.Maximizedの時に書き換える。 RestoreBoundsは読み専用なのでFormのTopとHeight等にGetWindowPlacement()の値から計算した値を入れる。 でMaximized→Normal時に縦サイズが最大のままになる問題は回避。
.iniに保存したい時でも同じようにRestoreBounds利用→GetWindowPlacement()利用に変更。
※実際にはrcNormalPositionの座標は補正が必要。
※(System.Windows.Forms.Screen.GetWorkingArea(this).Yを加える等)
※↑各スクリーンの上辺高さが違うとこれでも駄目か?…(´・ω・`)



新規
←管理者にだけ表示する場合チェック



トラックバック用URL:
http://r2089.blog36.fc2.com/tb.php/183-4ded7daf

Appendix

profile

那駕〇

Author:那駕〇

recent entries

アクセスの多い記事

過去の記事


義援金募集

FC2「東北地方太平洋沖地震」義援金募集につきまして

ブロとも申請フォーム

この人とブロともになる

カウンタ

※ここより下の部分に掲示板とかまとめとかいうリンクがあってもそれはfc2blogの広告なので当blog内コンテンツではないです(゜д゜)
....
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。