none
設計画面でのサイズと実サイズの差異について RRS feed

  • 質問

  • お世話になっております 。

    表題の通り、設計時と実行時でサイズが微妙に違うようです

    設計画面:

    実行画面:

        <Grid>
            <StackPanel>
                <TabControl>
                </TabControl>
                <ProgressBar />
            </StackPanel>
        </Grid>

    設計画面のProgressBarの下に空白が存在している
    なぜこのような微妙なズレがあるのでしょうか?

    追記:

    解りやすいように並べてみました。

    • 編集済み コーベル 2017年4月17日 6:33 画像追加
    2017年4月17日 6:27

回答

  • 設計時(デザイナー)に表示されるタイトルバーの高さと、実行時に表示されるタイトルバーの高さが変わると、クライアント領域の見える範囲も異なってしまうようです。これは次の 2 つが要因のようです。

    ・設計時は規定でタイトルバーの高さを含めたウィンドウサイズを指定している。
    ・タイトルバーの高さは、実行時の OS やユーザーの設定によって変わる。

    クライアント領域のサイズが変わらないようにするために、Window に SizeToContent = "WidthAndHeight" と設定し、Grid でクライアント領域のサイズを指定してはいかがでしょうか?

    <Window x:Class="WpfApplication1.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:WpfApplication1"
            mc:Ignorable="d"
            Title="MainWindow" SizeToContent = "WidthAndHeight" >
        <Grid Width="600" Height="600">
            <StackPanel>
                <TabControl>
                </TabControl>
                <ProgressBar />
            </StackPanel>
        </Grid>
    </Window>
    2017年4月17日 6:47

すべての返信

  • 設計時(デザイナー)に表示されるタイトルバーの高さと、実行時に表示されるタイトルバーの高さが変わると、クライアント領域の見える範囲も異なってしまうようです。これは次の 2 つが要因のようです。

    ・設計時は規定でタイトルバーの高さを含めたウィンドウサイズを指定している。
    ・タイトルバーの高さは、実行時の OS やユーザーの設定によって変わる。

    クライアント領域のサイズが変わらないようにするために、Window に SizeToContent = "WidthAndHeight" と設定し、Grid でクライアント領域のサイズを指定してはいかがでしょうか?

    <Window x:Class="WpfApplication1.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:WpfApplication1"
            mc:Ignorable="d"
            Title="MainWindow" SizeToContent = "WidthAndHeight" >
        <Grid Width="600" Height="600">
            <StackPanel>
                <TabControl>
                </TabControl>
                <ProgressBar />
            </StackPanel>
        </Grid>
    </Window>
    2017年4月17日 6:47
  • kenjinote さん、ご回答ありがとうございます。

    ご教示頂いた内容で修正をかけた所、見事に直りました!

    勉強させて頂きました、ありがとうございました!

    2017年4月17日 7:01