Xaml 在文本块上输入METRANSION后发生RenderTransform
我正在将Xaml 在文本块上输入METRANSION后发生RenderTransform,xaml,windows-8,microsoft-metro,windows-runtime,windows-store-apps,Xaml,Windows 8,Microsoft Metro,Windows Runtime,Windows Store Apps,我正在将enterthemetransition动画应用于TextBlock。TextBlock的样式为PageHeaderTextStyle,其中包含RenderTransform。我遇到的问题是,RenderTransform应用了一种转换效果,这种效果在动画播放完成后才会真正渲染。因此,它看起来很奇怪,因为动画滚动控件,然后翻译突然将文本捕捉到位。有人知道为什么会这样吗 有没有一种方法可以在考虑到翻译的情况下播放动画 转换: <Setter Property="RenderTrans
enterthemetransition
动画应用于TextBlock
。TextBlock
的样式为PageHeaderTextStyle
,其中包含RenderTransform
。我遇到的问题是,RenderTransform
应用了一种转换
效果,这种效果在动画播放完成后才会真正渲染。因此,它看起来很奇怪,因为动画滚动控件,然后翻译突然将文本捕捉到位。有人知道为什么会这样吗
有没有一种方法可以在考虑到翻译的情况下播放动画
转换:
<Setter Property="RenderTransform">
<Setter.Value>
<TranslateTransform X="-2" Y="8"/>
</Setter.Value>
</Setter>
文本块:
<TextBlock x:Name="pageTitle" Grid.Column="1" Text="{Binding Title}" Style="{StaticResource PageHeaderTextStyle}">
<TextBlock.Transitions>
<TransitionCollection>
<EntranceThemeTransition/>
</TransitionCollection>
</TextBlock.Transitions>
</TextBlock>
从您的文字中可以看出,入口的METRANSION设置了文本块变换的动画。最简单的方法是将入口转换放在父元素上,或者将转换放在父元素上。您只需将文本块包装在网格中即可。我刚刚遇到了完全相同的问题。解决此问题的方法是将文本块
嵌套在距离网格
一层的位置,并在其上进行转换,例如使用第二个网格
发生的情况是,变换会将变换应用于其每个子对象,但它们可能拥有的任何变换都会被临时替换,直到动画完成后,从而在随后应用原始变换时产生令人讨厌的“捕捉”
在以下示例中,将运行转换,替换TextBlock
的转换,然后在转换结束后应用原始转换。你看到“快照”了吗
<Grid Style="{StaticResource LayoutRootStyle}">
<TextBlock Text="Header" Style="{StaticResource PageHeaderTextStyle}"
Margin="0,0,0,40"/>
</Grid>
希望这有帮助 你好,菲利普,谢谢你的回复。我尝试将TextBlock放在网格中,并将EnterthemeTransition应用于网格,但TextBlock上也会出现同样的效果。动画播放(滑动文本块),当到达路径末端时,应用RenderTransform,文本块“传送”到RenderTransform中定义的转换偏移量。如何将转换应用到tb,但将转换应用到网格?不,同样的事情。我将动画放在TextBlock上,将RenderTransform放在网格上,但同样的事情发生了。TextBlock滑动到位,然后捕捉到转换点。另一种选择是只使用边距调整TextBlock的位置。在您的情况下,您可以设置Margin=“-2,8,2,-8”。Filip,我会在有机会时尝试您的建议并相应更新。谢谢你的回复。
<Grid Style="{StaticResource LayoutRootStyle}">
<Grid>
<TextBlock Text="Header" Style="{StaticResource PageHeaderTextStyle}"
Margin="0,0,0,40"/>
</Grid>
</Grid>