禁用嵌套ContentControl的动画效果

4

我希望禁用一个元素的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
我非常确定你需要将CC从其父网格中分离出来才能实现你想要的效果。 - Chris W.
1个回答

1

我在页面的LayoutRoot网格中有以下内容,它可以正确禁用入口主题过渡:

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

请注意,我是在页面中覆盖使用< strong> LayoutRootStyle 的面板的转换,而不是在资源中进行。但要注意,并不会解释这些动画是否会从启用它们的第一个控件向下流动,而不管子控件是否已禁用它们。您可以尝试将这两个面板放置在UI层次结构的同一级别上(对等而不是一个嵌套在另一个内),看看是否可以解决问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接