WPF 网格允许内部控件自动调整宽度/高度的大小



嘿,我一直在尝试找到如何在用户屏幕大于默认大小的情况下自动调整网格控件中控件大小的示例。

目前,当我放大表单时,我无法调整控件的大小。当前是否有任何代码可以在网格内找到所有控件,并在调整窗体大小时即时调整它们的大小?

我当前的代码是:

<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>

任何帮助都会很棒!谢谢!

看起来您没有按照预期的方式使用网格。

如果希望 UI 随窗口动态调整大小,则不应有任何(或至少最小化)硬编码宽度和高度的数量。我看到的第一个问题是内部网格的硬编码高度为 127,因此无论窗口的大小如何,该网格都将始终是该高度。去除该高度是一个很好的第一步。

我也不确定为什么有两个网格 - 难道所有的按钮都只是外网格的子级吗?

最后,您没有在网格中定义任何行或列。我认为您正在尝试使用各个按钮上的VerticalAlignmentHorizontalAlignment属性来控制它们在窗口中的位置。最好根据您希望按钮所在的位置定义行和列。MSDN 有一个示例,说明如何使用具有多行和多列的网格。

最新更新