Значение Y элемента строки не привязано к родительскому свойству StackPanel ActualHeight

В моем MainPage. У меня есть сетка с 1 строкой и 2 столбцами. У каждого столбца есть StackPanel. В левом столбце StackPanel есть кнопка «Добавить» (так что его начальная высота составляет 100 единиц); правый столбец StackPanel пуст. Нажав кнопку «Добавить», я добавляю два пользовательских элемента управления одинаковой высоты в сетку, по одному в каждом столбце / StackPanel. Поскольку в левом столбце есть кнопка «Добавить», высота всегда на 100 единиц больше, чем высота левого столбца. Я вижу, что значения ActualHeight левой и правой Stackpanels увеличиваются каждый раз, когда я нажимаю «Добавить», и создаются и добавляются элементы управления UserControl.

Теперь я пытаюсь добавить элемент Line в правый столбец StackPanel, и я хочу, чтобы длина строки увеличивалась вместе с длиной столбцов. В настоящее время мой код выглядит так:

<ScrollViewer Grid.Column="1" Grid.Row="0" RequestedTheme="Dark" ScrollViewer.HorizontalScrollMode="Auto" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollMode="Disabled" ScrollViewer.VerticalScrollBarVisibility="Hidden">
    <StackPanel x:Name="RightContainer" HorizontalAlignment="Left" VerticalAlignment="Top" Width="Auto">
        <!--UserControls added here dynamically-->
    </StackPanel>
</ScrollViewer>
<Line Grid.Column="1" Grid.Row="0" Stroke="White" StrokeThickness="2" Opacity="0.7" X1="100" X2="100" Y1="{Binding ElementName=RightContainer, Path=ActualHeight}" Y2="0" />

Однако это вообще не показывает линию. Если я устанавливаю Y1 = "{Binding ElementName = LeftContainer, Path = ActualHeight}", я получаю строку высотой 100, но эта высота не увеличивается с высотой столбцов. Есть идеи, что мне может не хватать?


person Freakishly    schedule 16.01.2015    source источник


Ответы (1)


ActualWidth/Height не могут быть привязаны (они не вызывают уведомления об изменениях). Вместо этого вам нужно будет обработать событие SizeChange

person Filip Skakun    schedule 16.01.2015