【问题标题】:WPF Grid horizontalalignment doesn't work. Sizes don't changesWPF 网格水平对齐不起作用。尺寸不变
【发布时间】:2015-02-01 04:14:02
【问题描述】:

我有一个堆栈,堆栈内部有一个网格。

我需要在调整窗口大小时增加堆栈和网格大小。 我将 Stack 和 Grid Horizo​​ntalAlignment 设置为 'Stretch'

堆栈工作正常,但当我调整窗口大小时网格大小不会增加

这是我的代码。

<StackPanel Background="Blue" Orientation="Horizontal" HorizontalAlignment="Stretch" Grid.Column="1" Margin="13,0,0,0" >
   <Grid HorizontalAlignment="Stretch" Background="Beige" Width="515">

        <Grid.RowDefinitions>
            <RowDefinition Height="100" />
            <RowDefinition Height="240" />
            <RowDefinition Height="100" />
        </Grid.RowDefinitions>

        <Image x:Name="imageMap" Source="Resources/images.jpg" HorizontalAlignment="Stretch" Grid.Row="0" Stretch="Fill" Margin="0,0,0,0" />

   </Grid>
</StackPanel>

请指教

【问题讨论】:

  • 您认为它可能是您在网格上设置的固定Width="515" 吗?
  • 我认为在 StackPanel 中使用 Orientation=Horz 和 HorzAlignment=Stretch 时会忽略拉伸
  • 作为@ChrisW。已经指出,您已将 Grid 设置为固定宽度。当您删除它时,您的 Grid 应该能够与其父级一起拉伸。
  • 固定大小无济于事,但当我删除 Orientation=Horz 时它可以工作.. 谢谢

标签: c# .net wpf xaml user-interface


【解决方案1】:

即使您从 Grid 中删除了 Width,它也不起作用,因为 StackPanel 的方向设置为 Horizo​​ntal。当它像这样设置时,StackPanel 会为其子项提供他们在测量布局传递期间所需的宽度See Layout here

要解决此问题,您需要将方向更改为垂直,或使用其他容器,例如 DockPanel

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多