Visual Studio | WPF > IDE > デザイン時と実行時のウィンドウサイズの違い

```txt:動作環境
Windows 8.1 Pro (64bit)
Microsoft Visual Studio 2017 Community
Sublime Text 2
```

### デザイン時
![qiita2.png](https://qiita-image-store.s3.amazonaws.com/0/32870/98ecd7a5-68cd-5844-9efb-84d4425504d5.png)

### 実行時
![qiita.png](https://qiita-image-store.s3.amazonaws.com/0/32870/470ac441-e6ea-1fef-0f3f-30097d5cdb3f.png)

### サイズの違い

- デザイン時: 525 x 350
    - XAMLで指定した数値
- 実行時: 510 x 340

### XAMLファイル

```MainWindow.xaml
<Window x:Class="WPF_TCPClient_171205.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WPF_TCPClient_171205"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid Background="LightGray">
        <Button Name="B_send" Content="Send" HorizontalAlignment="Left" Margin="432,67,0,0" 
                VerticalAlignment="Top" Width="75" Click="B_send_Click"/>
        <Label Content="Text" HorizontalAlignment="Left" Margin="10,64,0,0" VerticalAlignment="Top"/>
        <TextBox Name="T_sendText" HorizontalAlignment="Left" Height="23" Margin="58,65,0,0" 
                 TextWrapping="Wrap" Text="Hello" VerticalAlignment="Top" Width="357"/>
        <TextBox Name="T_log" HorizontalAlignment="Left" Height="215" Margin="10,94,0,0" 
                 TextWrapping="Wrap" VerticalAlignment="Top" Width="497"
                 VerticalScrollBarVisibility="Visible"
                 Text="{Binding LogText}"/>
        <Label Content="SendTo" HorizontalAlignment="Left" Margin="10,9,0,0" VerticalAlignment="Top"/>
        <TextBox Name="T_sendTo" HorizontalAlignment="Left" Height="23" Margin="68,10,0,0" 
                 TextWrapping="Wrap" Text="192.168.0.79" VerticalAlignment="Top" Width="120"/>
        <Label Content="port" HorizontalAlignment="Left" Margin="229,9,0,0" VerticalAlignment="Top"/>
        <TextBox Name="T_port" HorizontalAlignment="Left" Height="23" Margin="268,10,0,0" 
                 TextWrapping="Wrap" Text="7000" VerticalAlignment="Top" Width="120"/>

    </Grid>
</Window>
```

### 調整のコード > お薦めではない

code behindにて、初期化処理の後でWidthとHeightを10程度加えると、デザイン時のサイズに近づくが、実行環境により異なるかもしれないため、**この方法はお薦めではない**。

```
        public MainWindow()
        {
            InitializeComponent();

            this.Height = 350 + 10;
            this.Width = 525 + 10;
```

![qiita.png](https://qiita-image-store.s3.amazonaws.com/0/32870/1b8899b6-42e0-8da3-2573-fd8a3635b045.png)

他のバージョンのIDEでは問題があるのか不明。

### 関連1

[Different size form WPF - Design mode vs Runtime mode](https://stackoverflow.com/questions/34718588/different-size-form-wpf-design-mode-vs-runtime-mode)

リンク先の回答にあるように、Width="525*"のような記載にしたら下記のエラーとなった。

> FormatException: '525*' 文字列は、Length に変換できません。

"525*"などの書き方は「比率指定」だった。
https://qiita.com/7of9/items/eec0e8ce50149d087706
ColumnDefinitionなどでWidth="525*"というのは指定できるが、結果が自分の欲しいものにはならない。

### 関連2

[C# WPF different size from IDE after debugging?](https://stackoverflow.com/questions/15710176/c-sharp-wpf-different-size-from-ide-after-debugging)