如何将StackPanel的高度绑定到WPF中包含网格的高度?
我对WPF比较陌生,所以如果有一个简单的解决方案,我很抱歉。但是,我试图将StackPanel的高度绑定到其包含的网格。我知道StackPanel会自动调整大小以适应其元素,但我希望将其绑定到网格,这样它就不会这样做。现在,堆栈面板不随窗口调整大小,因为它仍然保持不变 它需要调整大小以适合其元素 以下是我到目前为止的情况:如何将StackPanel的高度绑定到WPF中包含网格的高度?,wpf,xaml,Wpf,Xaml,我对WPF比较陌生,所以如果有一个简单的解决方案,我很抱歉。但是,我试图将StackPanel的高度绑定到其包含的网格。我知道StackPanel会自动调整大小以适应其元素,但我希望将其绑定到网格,这样它就不会这样做。现在,堆栈面板不随窗口调整大小,因为它仍然保持不变 它需要调整大小以适合其元素 以下是我到目前为止的情况: <Grid x:Name="MainGrid" Grid.Row="2" Margin="1" Drop="Grid_Drop" AllowDrop="T
<Grid x:Name="MainGrid" Grid.Row="2" Margin="1" Drop="Grid_Drop"
AllowDrop="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="175"/>
<ColumnDefinition Width="5"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackPanel x:Name="SidePanel" Grid.Column="0" Height="{Binding
ActualHeight, ElementName=MainGrid, Mode=OneWay}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition/>
</Grid.RowDefinitions>
<local:DeviceTreeView x:Name="deviceTree" PyngInfo="{Binding
PyngSystemVm.PyngInfo}" Grid.Row="0"/>
</StackPanel>
<-- There is more code here but it is not important for answering this
question -->
</Grid>
我尝试将“侧面板”的高度绑定到“主网格”的实际高度,但当我运行此代码并检查元素时,网格会随窗口调整大小,但StackPanel不会。StackPanel和网格甚至有不同的高度,这对我来说没有意义,因为它们的高度应该绑定在一起
我还尝试将整个StackPanel包装在边框中并绑定到边框上,但这也不起作用。您不需要绑定StackPanel的高度,只需将其垂直对齐设置为“拉伸”即可。然而。。。你还是得不到我认为你想要的。StackPanel仅堆叠其子控件,不调整它们(至少不在“堆叠”方向)。考虑使用不同的控件,如Grid或UniformGrid,或者只扩展现有的网格以包含行和列。最简单的答案:根本不要使用
StackPanel
。如果您想水平/垂直堆叠,请使用带有多个列定义的网格。“我是如此的有远见,以至于我甚至没有想到这点。@FrankCusano,你也可以使用垂直/水平对齐/内容对齐来拉伸,以填充内部控件所在的任何外部控件。”。