1

ユーザーの画面がデフォルトのサイズよりも大きい場合に、グリッド コントロール内にあるコントロールのサイズを自動調整する方法の例を見つけようとしています。

現在、フォームを拡大するとコントロールのサイズを変更できません。現在、グリッド内のすべてのコントロールを見つけて、フォームのサイズが変更されたときにその場でサイズを変更できるコードはありますか?

私の現在のコードは次のとおりです。

<Window x:Class="Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="768" Width="1024">
    <Grid>
        <Grid Height="115" Margin="190,0,195,145" Name="Grid1" VerticalAlignment="Bottom" Background="Cyan">
            <Button Height="45" HorizontalAlignment="Left" Margin="10,10,0,0" Name="Button4" VerticalAlignment="Top">Button</Button>
            <Button Height="45" HorizontalAlignment="Left" Margin="101,10,0,0" Name="Button5" VerticalAlignment="Top">Button</Button>
            <Button Height="45" HorizontalAlignment="Left" Margin="192,10,0,0" Name="Button6" VerticalAlignment="Top">Button</Button>
            <Button Height="45" HorizontalAlignment="Right" Margin="280,10,257,0" Name="Button7" VerticalAlignment="Top">Button</Button>
            <Button Height="45" HorizontalAlignment="Right" Margin="0,10,166,0" Name="Button8" VerticalAlignment="Top">Button</Button>
            <Button Height="45" HorizontalAlignment="Right" Margin="0,10,75,0" Name="Button9" VerticalAlignment="Top">Button</Button>
            <Button Height="45" HorizontalAlignment="Left" Margin="10,0,0,9" Name="Button10" VerticalAlignment="Bottom">Button</Button>
            <Button Height="45" HorizontalAlignment="Left" Margin="101,0,0,9" Name="Button11" VerticalAlignment="Bottom">Button</Button>
            <Button Height="45" HorizontalAlignment="Left" Margin="192,0,0,9" Name="Button12" VerticalAlignment="Bottom">Button</Button>
            <Button Height="45" HorizontalAlignment="Right" Margin="280,0,257,9" Name="Button13" VerticalAlignment="Bottom">Button</Button>
            <Button Height="45" HorizontalAlignment="Right" Margin="0,0,166,9" Name="Button14" VerticalAlignment="Bottom">Button</Button>
            <Button Height="45" HorizontalAlignment="Right" Margin="0,0,75,9" Name="Button15" VerticalAlignment="Bottom">Button</Button>
        </Grid>
    </Grid>
</Window>

どんな助けでも素晴らしいでしょう!ありがとう!

4

1 に答える 1

4

意図したとおりにグリッドを使用していないようです。

UI をウィンドウに合わせて動的にサイズ変更する場合は、ハードコードされた幅と高さの数をまったく (または少なくとも最小化) すべきではありません。最初の問題は、内側のグリッドの高さが 127 にハードコードされているため、ウィンドウのサイズに関係なく、グリッドは常にその高さになることです。その高さを削除することは、適切な最初のステップです。

また、2 つのグリッドがある理由もわかりません。すべてのボタンを外側のグリッドの子にすることはできませんか?

最後に、グリッドで行または列を定義していません。個々のボタンのプロパティVerticalAlignmentとプロパティを使用して、ウィンドウ上の位置を制御しようとしていたと思います。HorizontalAlignmentボタンを配置する場所に基づいて行と列を定義する方がはるかに優れています。MSDNには、複数の行と列を持つグリッドを使用する方法の例があります。

于 2012-06-06T18:51:08.053 に答える