我想为我的一个元素禁用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"/>
解决方法
我在页面的LayoutRoot网格中有以下内容,它正确地禁用了入口主题转换:
<Grid x:Name="LayoutRoot" Style="{StaticResource LayoutRootStyle}"> <Grid.ChildrenTransitions> <TransitionCollection/> </Grid.ChildrenTransitions>
但请注意,我正在覆盖使用LayoutRootStyle的面板的转换,而我在页面而不是资源中执行此操作.
可能是这些动画从它们启用的第一个控件向下流动,而不管子控件是否禁用它们.您可以尝试将两个面板放在UI层次结构的同一级别(对等体而不是嵌套在另一个体系结构中)并查看是否修复了它.