0

在我的主页中。我有一个 1 行 2 列的网格。两列各有一个 StackPanel。左列 StackPanel 有一个“添加”按钮(因此它的初始高度为 100 个单位);右列 StackPanel 为空。单击“添加”按钮时,我将两个相同高度的用户控件添加到网格中,每列/StackPanel 中都有一个。由于左列有一个添加按钮,所以高度总是比左列高 100 个单位。我可以看到,每次单击“添加”时,左右 Stackpanels 的 ActualHeight 的值都会增加,并且会创建并添加 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 的行,但该高度不会随着列的高度而增加。知道我可能会错过什么吗?

4

1 回答 1

2

ActualWidth/Height不可绑定(它们不会引发更改通知)。您需要改为处理SizeChange事件

于 2015-01-16T21:25:42.320 回答