Как привязать высоту StackPanel к высоте содержащей Grid в WPF? - PullRequest
0 голосов
/ 04 октября 2018

Я относительно новичок в WPF, поэтому заранее извиняюсь, если есть простое решение для этого.Однако я пытаюсь привязать высоту StackPanel к содержащей ее Grid.Я понимаю, что StackPanel автоматически изменяет размеры, чтобы соответствовать его элементам, но я хотел бы привязать его к Grid, чтобы он этого не делал.Прямо сейчас панель стека не изменяет размеры окна, так как она остается того размера, который необходим для того, чтобы соответствовать его элементам.

Вот что у меня есть:

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

Я попытался связать высоту SidePanel с фактической высотой MainGrid, но когда я запускаю этот код и проверяю элементы, Grid изменяет размер окна, а StackPanel - нет.StackPanel и Grid даже имеют разную высоту, что не имеет смысла для меня, поскольку их высоты должны быть связаны вместе.

Я также пытался обернуть всю StackPanel в рамку и привязать к ней, но это также помоглоне работает.

1 Ответ

0 голосов
/ 04 октября 2018

Вам не нужно привязывать высоту StackPanel, достаточно просто установить для ее VerticalAlignment значение Stretch.Однако ... Вы все еще не получите то, что я думаю, что вы хотите.StackPanel только складывает свои дочерние элементы управления, но не корректирует их (по крайней мере, не в направлении «стека»).Попробуйте использовать другой элемент управления, например Grid или UniformGrid, или просто разверните существующую сетку, чтобы в ней были как строки, так и столбцы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...