如何拉伸窗口?

时间:2014-01-31 14:16:29

标签: wpf xaml

我的WPF项目中的窗口控件存在问题。我不知道如何拉伸(调整大小)这个窗口或内部的网格。我尝试附加属性Horizo​​ntalContentAlignment =" Stretch"和VerticalContentAlignment ="拉伸"两个控件都一致,但没有。你知道我错了吗?

这是我的XAML的一部分:

窗口

Title="MyWindow" AllowsTransparency="True" Background="Transparent" WindowStyle="None"

<Grid x:Name="mainGrid" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">        
    <Border x:Name="mainBorder" Background="{DynamicResource ShellBackground}" CornerRadius="15" BorderThickness="3" Margin="0,0,10,9">

        <Grid Background="{DynamicResource BrandingBrush}">
            <Grid.RowDefinitions>
                <RowDefinition Height="30" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition />
            </Grid.RowDefinitions>
               ...
        </Grid>
</Grid>

/窗

2 个答案:

答案 0 :(得分:0)

正如@Shoe在评论中正确暗示的那样,为了让Grid完全填充其父级空间,其至少一个列和行的维度必须设置为"*" 。从MSDN上的Grid类页面:

  

Grid中定义的列和行可以利用Star大小调整来按比例分配剩余空间。选择“星形”作为行或列的高度或宽度时,该列或行将接收剩余可用空间的加权比例。这与Auto相反,后者根据列或行中内容的大小均匀分配空间。

在此示例中(取自WPF Tutorials.net上的Grid Panel页面),只有Height将填充来自父级的完整Height,因为它使用{{1在其中一行中... "*"的{​​{1}}将取决于第一列中的内容,因为Width设置为Grid:< / p>

Width

答案 1 :(得分:0)

使用RowDefinition Height =“*”

我希望下面的内容符合您的要求:

<Grid x:Name="mainGrid" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    <Border x:Name="mainBorder" Background="blue" CornerRadius="15" BorderThickness="3" Margin="0,0,10,9">
        <Grid Background="Red" Margin="20,20,20,20">
            <Grid.RowDefinitions>
                <RowDefinition Height="30" />
                <RowDefinition Height="*" />
                <RowDefinition Height="*" />
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>
            <TextBlock Text="123" Grid.Row="0"></TextBlock>
            <TextBlock Text="345" Grid.Row="1"></TextBlock>
            <TextBlock Text="678" Grid.Row="2"></TextBlock>
            <TextBlock Text="910" Grid.Row="3"></TextBlock>
        </Grid>
    </Border>               
</Grid>