質問: windows10 ではウィンドウの枠がなくなりましたが、windowサイズはどう計算されてるのでしょうか window に `Width="480" Height="360"` を指定して表示したウィンドウのサイズを測るとタイトルバーも込みで、1pxのボーダーも込みだと `466 x 353 px` でした。 480 などの数値が反映されてないのかと思い、ウィンドウ表示後に、`ActualWidth` や `RenderSize.Width` を調べてみるとこうなりました。 | | ActualWidth | ActualHeight | RenderSize.Width | RenderSize.Height | | --- | --- | --- | --- | --- | | Window | 480 | 360 | 480 | 360 | | root_control | 464 | 321 | 464 | 321 | `Actual**` も `RenderSize.**` も一緒で、 window で入力したとおりの数値で、XAML で Window 直下の、ルートになるコントロール(使ったのは Grid)は、464 x 321 でした。 タイトルバーの高さは 30px で、 全体のボーダーは 1px だったので、ルートのコントロールの Width に左右のボーダーの 2 を足せば実際の表示サイズの幅で、ルートのコントロールの Height に上下のボーダーの 2 とタイトルバーの 30px を足せば実際の表示サイズの高さになります。 ルートのコントロールのサイズにボーダーとタイトルバーをつければ実際のウィンドウサイズということはわかったのですが、 Window に設定した Width と Height からどうしたら実際の表示サイズ (466 x 353) が出てきたのかわかりません。 表示するウィンドウを枠なども含めて 480 x 360 などに固定したい場合はどうするものなのでしょうか? (一応 WinForms も試してみましたが、設定したウィンドウサイズと実際の値は違ってました)
回答: Windowの左右および下には各7pxの透明なWindow枠が存在します。 試しに`Left="0"`として、ウィンドウを表示すると、ディスプレイの左端から7px右にずれたところに Windowが表示されるはずです。 `WindowStyle="None"` `AllowsTransparency="True"`とすれば、枠はなくせますが、キャプションヘッダがなくなったり、Window枠でのリサイズができなくなったりします。 なぜ画面サイズを固定したいのでしょう?