禁用嵌套ContentControl的动画

时间:2012-12-17 21:21:42

标签: xaml animation windows-8 transition

我想为我的一个元素禁用EntrenceThemeAnimation。我有一个Grid,它将动画设置给它的所有孩子(我认为它是页面的默认设置)。是否可以为作为此网格的子项的ContentControl禁用此动画?

我已尝试过以下操作,但似乎无效。

内容

<Grid Style="{StaticResource LayoutRootStyle}">
...
<!-- no animations for this element -->
<ContentControl x:Name="Background" Content="Tabstagram" Margin="0" Grid.Row="1" Style="{StaticResource Background}">
    <ContentControl.Transitions>
        <TransitionCollection/>
    </ContentControl.Transitions>
    <ContentControl.ContentTransitions>
        <TransitionCollection/>
    </ContentControl.ContentTransitions>
</ContentControl>

样式

<Style x:Key="LayoutRootStyle" TargetType="Panel">
    <Setter Property="Background" Value="{StaticResource ApplicationPageBackgroundThemeBrush}"/>
    <Setter Property="ChildrenTransitions">
        <Setter.Value>
            <TransitionCollection>
                <EntranceThemeTransition/>
            </TransitionCollection>
        </Setter.Value>
    </Setter>
</Style>
<Style x:Key="Background" TargetType="ContentControl">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ContentControl">
                <Grid>
                    <Grid.ChildrenTransitions>
                        <TransitionCollection/>
                    </Grid.ChildrenTransitions>
                    <Grid.Transitions>
                        <TransitionCollection/>
                    </Grid.Transitions>
                    <Rectangle IsHitTestVisible="False" StrokeThickness="75" Margin="0" Fill="#FFC1C1C1"/>

1 个答案:

答案 0 :(得分:1)

我在页面的LayoutRoot网格中有以下内容,它正确地禁用了入口主题转换:

<Grid x:Name="LayoutRoot" Style="{StaticResource LayoutRootStyle}">
    <Grid.ChildrenTransitions>
        <TransitionCollection/>
    </Grid.ChildrenTransitions>

请注意,我正在覆盖使用 LayoutRootStyle 的面板的过渡,我在页面而不是资源中进行此操作。

可能是这些动画从它们启用的第一个控件开始向下流动,无论子控件是否禁用它们。您可以尝试将两个面板放在UI层次结构的同一级别(对等体而不是嵌套在另一个体系结构中)并查看是否修复了它。