【问题标题】:Line element Y value not Binding to Parent StackPanel ActualHeight property线元素 Y 值未绑定到父 StackPanel ActualHeight 属性
【发布时间】:2015-01-16 21:24:49
【问题描述】:

在我的主页中。我有一个 1 行 2 列的网格。两列各有一个 StackPanel。左列 StackPanel 有一个“添加”按钮(因此它的初始高度为 100 个单位);右列 StackPanel 为空。单击“添加”按钮时,我将两个相同高度的用户控件添加到网格中,每个列/StackPanel 中都有一个。由于左列有一个添加按钮,所以高度总是比左列高 100 个单位。可以看到左右Stackpanels的ActualHeight值在每次点击“Add”时都会增加,同时创建并添加了UserControls。

现在,我正在尝试将 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 的行,但该高度不会随着列的高度而增加。知道我可能缺少什么吗?

【问题讨论】:

    标签: c# data-binding windows-store-apps line actualheight


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-01-27
      • 2015-08-30
      • 2017-07-20
      • 2010-12-11
      • 2011-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多