如何从Windows 8 App中的单个对象中删除EntranceThemeTransition?

时间:2013-04-22 22:52:55

标签: xaml user-interface windows-8 microsoft-metro winrt-xaml

似乎每个添加到Windows 8应用程序页面中的对象都会从右到左进行“滑动” - 入口转换,只要有人导航到该页面就会开始。

是否有可能从此过渡中删除单个对象?

无论

<Object.Transitions>
      <TransitionCollection />
</Object.Transitions>

this thread帮助......

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

AFAIK无法将给定对象从其父母所应用的过渡中豁免。我唯一能建议的是以不应用转换的方式构造你的xaml。我的意思是在一个没有子过渡的面板中有这个特殊项目,而页面的其余部分在一个带有子过渡的面板中。根据这个项目的位置,它可能非常容易或困难。

答案 1 :(得分:0)

正如Nigel建议的那样,我发现的唯一解决方案是更改页面结构并将元素放在具有动画的网格之外:

<Page
    x:Class="App1.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:App1"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Grid.Transitions>
            <TransitionCollection/>
            <!-- Ensure no transitions in background -->
        </Grid.Transitions>

        <TextBlock FontSize="50" Margin="50">This item is not animated</TextBlock>
        <Grid>
            <Grid.ChildrenTransitions>
                <TransitionCollection>
                    <!-- add transitions here -->
                    <EntranceThemeTransition FromVerticalOffset="1500" FromHorizontalOffset="1500"/>
                </TransitionCollection>
            </Grid.ChildrenTransitions>
            <TextBlock Margin="50,100" FontSize="50">This item is animated</TextBlock>
        </Grid>
        <TextBlock FontSize="50" Margin="50,150">Another not animated item</TextBlock>
    </Grid>
</Page>