WPF将StackPanel的宽度从0设置为自动?

问题描述 投票:6回答:2

当它的可见性从0的宽度增加到其自动宽度时,我正在尝试给StackPanel设置动画,这是我目前的状态:

<Trigger Property="Visibility" Value="Visible">
    <Setter Property="Width" Value="0"></Setter>
    <Trigger.EnterActions>
        <BeginStoryboard>
            <Storyboard>
                <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Width" Duration="0:0:1">
                    <DiscreteObjectKeyFrame KeyTime="0">
                        <DiscreteObjectKeyFrame.Value>
                            <System:Double>NaN</System:Double>
                        </DiscreteObjectKeyFrame.Value>
                    </DiscreteObjectKeyFrame>
                </ObjectAnimationUsingKeyFrames>
            </Storyboard>
        </BeginStoryboard>
    </Trigger.EnterActions>
</Trigger>

有人可以解释我如何实现此动画吗?我尝试执行此操作可能无法实现吗?

谢谢,亚历克斯。

.net wpf xaml wpf-controls wpf-4.0
2个回答
11
投票

这是我一起提出的一个快速样机项目。

[在Window的Loaded事件中,我只是将堆栈面板的可见性设置为Visible,并且它会扩展以适应其容器的宽度,从左到右...希望能满足您的需求。


0
投票

所以,这是一个很老的问题,但是我认为这是一个足够普遍的情况,您需要将WidthHeight0动画化为Auto(或类似值)以证明另外的答案是正确的。在这里,我将不着重于Alex的确切要求,以强调我提出的解决方案的一般性质。

© www.soinside.com 2019 - 2024. All rights reserved.