首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Win10 SplitView动画

Win10 SplitView动画
EN

Stack Overflow用户
提问于 2015-08-18 03:22:13
回答 2查看 1.8K关注 0票数 1

我试图在Windows应用程序中实现一个FlipView控件,但我似乎无法像Windows10日历应用程序那样在打开和关闭状态之间进行动画转换。如果我看一下SplitView的默认样式,就会发现面板大小似乎是通过对ColumnDefinition的宽度属性进行动画处理而改变的。不能使用框架提供的默认动画来设置此属性的动画。任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2015-08-21 22:43:54

在DefaultStyle中,查找ClosedCompactLeft可视状态。然后在PaneClipRectangleTransform.上修改动画的Duration查找此动画(这是您将要修改的动画):

代码语言:javascript
复制
 <DoubleAnimation Storyboard.TargetName="PaneClipRectangleTransform"
                                        Storyboard.TargetProperty="TranslateX"
                                        To="{Binding TemplateSettings.NegativeOpenPaneLengthMinusCompactLength, RelativeSource={RelativeSource Mode=TemplatedParent}}"
                                        Duration="0:0:0.0" />
票数 2
EN

Stack Overflow用户

发布于 2015-10-12 16:37:39

您可以在VisualState中定义Storyboard。如果扣动了扳机,故事就会自动开始。

代码结构示例:

代码语言:javascript
复制
<VisualStateManager.VisualStateGroups>
            <VisualStateGroup>
                <VisualState>
                    <VisualState.StateTriggers>
                        <AdaptiveTrigger MinWindowWidth="0" />
                    </VisualState.StateTriggers>
                     <Storyboard>
                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" Storyboard.TargetName="Drawer">
                            <SplineDoubleKeyFrame KeyTime="0" Value="0"/>
                            <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="-260">
                                <EasingDoubleKeyFrame.EasingFunction>
                                    <CircleEase EasingMode="EaseOut"/>
                                </EasingDoubleKeyFrame.EasingFunction>
                            </EasingDoubleKeyFrame>
                        </DoubleAnimationUsingKeyFrames>
                  </Storyboard>
                </VisualState>
                <VisualState>
                    <VisualState.StateTriggers>
                        <AdaptiveTrigger MinWindowWidth="1020" />
                    </VisualState.StateTriggers>
                    <Storyboard>
                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" Storyboard.TargetName="Drawer">
                            <EasingDoubleKeyFrame KeyTime="0" Value="-260"/>
                            <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="0">
                                <EasingDoubleKeyFrame.EasingFunction>
                                    <CircleEase EasingMode="EaseOut"/>
                                </EasingDoubleKeyFrame.EasingFunction>
                            </EasingDoubleKeyFrame>
                        </DoubleAnimationUsingKeyFrames>
                    </Storyboard>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>

如果你使用的是SplitView,你可以编写一个扩展SplitView的类并定制它的样式,这样你就可以在你的代码中获得PaneContent,这样你就可以自己动画化它们了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32058116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档