使用Xaml故事板尝试同时淡入一个元素并淡入另一个元素时遇到错误

MB。

我希望最终确定应用程序的外观,并且很难将过渡动画应用于一个非常基本的问题。

附件中,您可以找到我正在苦苦挣扎的代码。我已经注释掉了开发人员和原型开发人员在使用的设置程序。它们按照我的期望工作。

情节提要过渡不能以任何形式起作用。只要我没有任何运行时错误,就只添加一个故事板过渡与所有或任何二传手“结合”,就可以了,但是过渡根本没有出现。

我想知道我是否可能不是完全误解情节提要板的工作原理。

我得到的错误是:

 Multiple animations in the same containing Storyboard cannot target the same property on a single element.

这是简化的代码:

<Grid>
<VisualStateManager.VisualStateGroups>
        <VisualStateGroup>
            <VisualStateGroup.Transitions>
                <VisualTransition GeneratedDuration="0:0:1"/>
            </VisualStateGroup.Transitions>
            <VisualState x:Name="StateA">
                <!--<VisualState.Setters>
                    <Setter Target="FirstElement.Visibility" Value="Visible" />
                    <Setter Target="SecondElement.Visibility" Value="Collapsed" />
                </VisualState.Setters>-->
                <Storyboard>
                    <PopOutThemeAnimation TargetName="SecondElement"/>
                    <PopInThemeAnimation TargetName="FirstElement"/>
                </Storyboard>
            </VisualState>
            <VisualState x:Name="StateB">
                <!-- <VisualState.Setters>
                    <Setter Target="FirstElement.Visibility" Value="Collapsed" />
                    <Setter Target="SecondElement.Visibility" Value="Visible" />
                </VisualState.Setters>-->
                <Storyboard>
                    <PopOutThemeAnimation TargetName="FirstElement"/>
                    <PopInThemeAnimation TargetName="SecondElement"/>
                </Storyboard>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>

    <Rectangle Name="FirstElement"
               Fill="Blue"
               HorizontalAlignment="Center"
               VerticalAlignment="Center"
               Width="200"
               Height="200" 
               DoubleTapped="GoToStateB" />

    <Rectangle Name="SecondElement"
               Fill="Red"
               HorizontalAlignment="Center"
               VerticalAlignment="Center"
               Width="200"
               Height="200" 
               DoubleTapped="GoToStateA" />
</Grid>

后面带有以下简单代码:

 private void GoToStateA(object sender, DoubleTappedRoutedEventArgs e)
    {
        // do something
        VisualStateManager.GoToState(this, "StateA", true);
    }
    private void GoToStateB(object sender, DoubleTappedRoutedEventArgs e)
    {
        // do something else
        VisualStateManager.GoToState(this, "StateB", true);
    }

编辑:JustinXL指出的“解决方案”是,以下Xaml元素需要删除,并且运行时错误消失:

            <VisualStateGroup.Transitions>
                <VisualTransition GeneratedDuration="0:0:1"/>
            </VisualStateGroup.Transitions>

我还不清楚为什么会是这种情况(真正的错误或只是一个晦涩的设计陷阱)。

贾斯汀XL

实际上,更简单的解决方案是完全删除Transitionsin VisualStateGroup

另请注意,我添加了一项IsHitTestVisible更改,以便FirstElement能够获得点击。

<VisualStateManager.VisualStateGroups>
    <VisualStateGroup>
        <VisualState x:Name="StateA">
            <VisualState.Setters>
                <Setter Target="SecondElement.(UIElement.IsHitTestVisible)"
                        Value="False" />
            </VisualState.Setters>
            <Storyboard>
                <PopOutThemeAnimation TargetName="SecondElement" />
                <PopInThemeAnimation TargetName="FirstElement" />
            </Storyboard>
        </VisualState>
        <VisualState x:Name="StateB">
            <Storyboard>
                <PopOutThemeAnimation TargetName="FirstElement" />
                <PopInThemeAnimation TargetName="SecondElement" />
            </Storyboard>
        </VisualState>
    </VisualStateGroup>
</VisualStateManager.VisualStateGroups>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Framer Motion使一个元素淡入另一个

来自分类Dev

从另一个元素触发淡入/淡出会导致淡入淡出元素在切换触发元素时粘住

来自分类Dev

如何在窗口加载时让一个元素淡出而另一个元素淡入其位置?

来自分类Dev

完全淡出元素,然后再淡入另一个

来自分类Dev

从按钮加载另一个故事板时,故事板崩溃

来自分类Dev

使用CSS或Jquery将一个图像淡入另一个图像

来自分类Dev

如何使用jQuery计时淡出一个div并淡入另一个div?

来自分类Dev

从一个故事板切换到另一个故事板?

来自分类Dev

将图像淡入另一个图像过渡

来自分类Dev

图像逐渐淡入另一个

来自分类Dev

淡入滚动中的另一个徽标

来自分类Dev

DIV淡入另一个DIV

来自分类Dev

使用CSS单击另一个元素时如何显示一个元素?

来自分类Dev

使用CSS单击另一个元素时如何显示一个元素?

来自分类Dev

淡出,暂停然后淡入一个元素-仅CSS

来自分类Dev

淡出,暂停,然后淡入一个元素-仅CSS

来自分类Dev

如何淡入第一个元素并延迟2秒然后淡入下一个元素?

来自分类Dev

如何淡入第一个元素并延迟2秒然后淡入下一个元素?

来自分类Dev

从另一个故事板设置ViewController的属性

来自分类Dev

返回到另一个故事板的按钮

来自分类Dev

将CSS悬停在另一个链接上时,使用CSS来使两个链接淡入

来自分类Dev

将CSS悬停在另一个链接上时,使用CSS来使两个链接淡入

来自分类Dev

单击另一个元素时如何关闭另一个元素

来自分类Dev

滚动到另一个元素时尝试将class添加到元素

来自分类Dev

sass:悬停另一个div时影响另一个元素

来自分类Dev

如何通过单击另一个在XAML中旋转一个元素?

来自分类Dev

悬停一个伪元素时,使另一个伪元素出现?

来自分类Dev

激活另一个元素时如何关闭一个元素?

来自分类Dev

当一个元素在另一个元素后面时,SwiftUI按钮会单击

Related 相关文章

  1. 1

    使用Framer Motion使一个元素淡入另一个

  2. 2

    从另一个元素触发淡入/淡出会导致淡入淡出元素在切换触发元素时粘住

  3. 3

    如何在窗口加载时让一个元素淡出而另一个元素淡入其位置?

  4. 4

    完全淡出元素,然后再淡入另一个

  5. 5

    从按钮加载另一个故事板时,故事板崩溃

  6. 6

    使用CSS或Jquery将一个图像淡入另一个图像

  7. 7

    如何使用jQuery计时淡出一个div并淡入另一个div?

  8. 8

    从一个故事板切换到另一个故事板?

  9. 9

    将图像淡入另一个图像过渡

  10. 10

    图像逐渐淡入另一个

  11. 11

    淡入滚动中的另一个徽标

  12. 12

    DIV淡入另一个DIV

  13. 13

    使用CSS单击另一个元素时如何显示一个元素?

  14. 14

    使用CSS单击另一个元素时如何显示一个元素?

  15. 15

    淡出,暂停然后淡入一个元素-仅CSS

  16. 16

    淡出,暂停,然后淡入一个元素-仅CSS

  17. 17

    如何淡入第一个元素并延迟2秒然后淡入下一个元素?

  18. 18

    如何淡入第一个元素并延迟2秒然后淡入下一个元素?

  19. 19

    从另一个故事板设置ViewController的属性

  20. 20

    返回到另一个故事板的按钮

  21. 21

    将CSS悬停在另一个链接上时,使用CSS来使两个链接淡入

  22. 22

    将CSS悬停在另一个链接上时,使用CSS来使两个链接淡入

  23. 23

    单击另一个元素时如何关闭另一个元素

  24. 24

    滚动到另一个元素时尝试将class添加到元素

  25. 25

    sass:悬停另一个div时影响另一个元素

  26. 26

    如何通过单击另一个在XAML中旋转一个元素?

  27. 27

    悬停一个伪元素时,使另一个伪元素出现?

  28. 28

    激活另一个元素时如何关闭一个元素?

  29. 29

    当一个元素在另一个元素后面时,SwiftUI按钮会单击

热门标签

归档