C# 有约束力;从「&&引用;至;属性设置为控件高度

C# 有约束力;从「&&引用;至;属性设置为控件高度,c#,xaml,data-binding,windows-10,doubleanimation,C#,Xaml,Data Binding,Windows 10,Doubleanimation,以下是我试图做的: 我在网格中有一个文本块(大小不固定)。我希望当用户按下一个按钮时,网格的高度可以设置为textblock大小的动画,显示textblock的所有内容 这是带有网格和文本块的xaml(简化): 这是我当前的代码: <Storyboard x:Name="ExtendDescription"> <DoubleAnimation x:Name="DBED" Duration="00:00:00.6" Storyboard.TargetProperty=

以下是我试图做的: 我在网格中有一个文本块(大小不固定)。我希望当用户按下一个按钮时,网格的高度可以设置为textblock大小的动画,显示textblock的所有内容

这是带有网格和文本块的xaml(简化):


这是我当前的代码:

<Storyboard x:Name="ExtendDescription">
    <DoubleAnimation x:Name="DBED" Duration="00:00:00.6" Storyboard.TargetProperty="Height" EnableDependentAnimation="True" From="0" To="{Binding ElementName=mytextblock, Path=ActualHeight}" Storyboard.TargetName="mygrid">
       <DoubleAnimation.EasingFunction>
            <CircleEase EasingMode="EaseInOut"/>
       </DoubleAnimation.EasingFunction>
    </DoubleAnimation>
</Storyboard>


我花了一个小时左右的时间寻找解决方案,但我想出来的都不管用。你知道我该怎么做吗?目前,动画有一个相当奇怪的行为,将高度设置为0,使网格变小,而不是变大://

最后,我通过C#处理了这个问题。当触发Textblock SizeChanged事件时,将执行以下代码:

myGrid.Visibility = Visibility.Visible;
DBED.To = DESCRIPTION.ActualHeight + 4;
DBED2.From = DESCRIPTION.ActualHeight + 4;
DBED和DBED2是双重动画。+4只是有一点空白,这样文本就不会被剪掉


我怀疑通过xaml处理这个问题不起作用,因为ActualHeight属性在渲染任何东西之前就被测量了,使其值等于0。

最后,我通过C#处理了这个问题。当触发Textblock SizeChanged事件时,将执行以下代码:

myGrid.Visibility = Visibility.Visible;
DBED.To = DESCRIPTION.ActualHeight + 4;
DBED2.From = DESCRIPTION.ActualHeight + 4;
DBED和DBED2是双重动画。+4只是有一点空白,这样文本就不会被剪掉


我怀疑通过xaml处理这个问题不起作用,因为在渲染任何内容之前会测量ActualHeight属性,使其值等于0。

我已经看过那篇文章,但他们的问题通过将EnableDependentImation设置为true得到了解决,我已经做过了。我已经看过那篇文章,但通过将EnableDependentAnimation设置为true,他们的问题得到了解决,我已经这样做了。