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

时间:2012-06-06 18:43:04

标签: wpf vb.net wpf-controls resize autosize

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

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

我目前的代码是:

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

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

1 个答案:

答案 0 :(得分:4)

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

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

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

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