zoukankan      html  css  js  c++  java
  • WPF VisualStateGroup.Transitions和VisualState ,过度状态和视图状态

    <VisualStateManager.VisualStateGroups>
                                <VisualStateGroup x:Name="ViewStates">
                                    <VisualStateGroup.Transitions>
                                        <VisualTransition GeneratedDuration="0:0:0.3" To="FContentState">
                                            <Storyboard>
                                                <DoubleAnimation Storyboard.TargetName="FButtonTransition" Storyboard.TargetProperty="Angle" To="-90" Duration="0:0:0.2"/>
                                            </Storyboard>
                                        </VisualTransition>
                                        <VisualTransition GeneratedDuration="0:0:0.3" To="BackContentState">
                                            <Storyboard>
                                                <DoubleAnimation Storyboard.TargetName="FButtonTransition" Storyboard.TargetProperty="Angle" To="90"  Duration="0:0:0.2"/>
                                            </Storyboard>
                                        </VisualTransition>
                                    </VisualStateGroup.Transitions>
    
                                    <VisualState x:Name="FContentState">
                                        <Storyboard>
                                            <DoubleAnimation Storyboard.TargetName="BBackContent" Storyboard.TargetProperty="Opacity" To="0" />
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="BackContentState">
                                        <Storyboard>
                                            <DoubleAnimation Storyboard.TargetName="BFContent" Storyboard.TargetProperty="Opacity" To="0" />
                                            <DoubleAnimation Storyboard.TargetName="FButtonTransition" Storyboard.TargetProperty="Angle" To="90" />
                                        </Storyboard>
                                    </VisualState>
                                </VisualStateGroup>
                            </VisualStateManager.VisualStateGroups>
    速度理解上面代码:
    VisualStateGroup.Transitions(过度状态)都是为视图状态而的,没有视图状态,过度状态完全没作用,
    下面代码就是将视图状态和过度状态绑定,在执行VisualState(视图状态)时,会执行绑定的VisualTransition(过度状态),所以GeneratedDuration="0:0:0.3"就起作用了[视图状态中的Storyboard动作过度0.3秒],
    然后执行过度视图中的Storyboard
     <VisualState x:Name="FContentState">
           <Storyboard>
                  <DoubleAnimation Storyboard.TargetName="BBackContent" Storyboard.TargetProperty="Opacity" To="0" />
           </Storyboard>
     </VisualState>
     <VisualTransition GeneratedDuration="0:0:0.3" To="FContentState">
           <Storyboard>
                   <DoubleAnimation Storyboard.TargetName="FButtonTransition" Storyboard.TargetProperty="Angle" To="-90" Duration="0:0:0.2"/>
           </Storyboard>
    </VisualTransition>

    如何执行视图状态?
    代码中调用下面代码
    VisualStateManager.GoToState(this, "FContentState", false);
    第一个参数:状态间转换控件
    第二个参数:你的视图状态名
    第三个参数:是否使用过度状态

    视图状态组的代码很是枯燥,记住怎么用就行了,实在是敲不出来就复制粘贴,然后改动改动即可。。。
  • 相关阅读:
    手机游戏开发中如何选择适合的纹理格式
    站在巨具的肩膀上:使用现有工具搭建自己的工作流
    游戏引擎不仅是代码,更多的是完善的工具
    Android下/data/data/<package_name>/files读写权限
    Unity3D中灵活绘制进度条
    为什么X86汇编中的mov指令不支持内存到内存的寻址?
    【吐血推荐】简要分析unity3d中剪不断理还乱的yield
    解释型语言和编译型语言如何交互?以lua和c为例
    char,wchar_t,WCHAR,TCHAR,ACHAR的区别----LPCTSTR
    游戏关卡是酱紫加载的,你造吗?
  • 原文地址:https://www.cnblogs.com/ilison/p/12518039.html
Copyright © 2011-2022 走看看