【问题标题】:Silverlight toolkit transition stopping half way when the application is reactivated重新激活应用程序时,Silverlight 工具包转换中途停止
【发布时间】:2012-04-18 18:38:48
【问题描述】:

我正在使用 nov 11 silverlight 工具包,我只是复制粘贴了基本的过渡来为我的应用增加一点趣味,而无需做太多工作。我指的是这段代码:

<!--some really simple basic navigation animations to get us started-->
<toolkit:TransitionService.NavigationInTransition>
    <toolkit:NavigationInTransition>
        <toolkit:NavigationInTransition.Backward>
            <toolkit:TurnstileTransition Mode="BackwardIn"/>
        </toolkit:NavigationInTransition.Backward>
        <toolkit:NavigationInTransition.Forward>
            <toolkit:TurnstileTransition Mode="ForwardIn"/>
        </toolkit:NavigationInTransition.Forward>
    </toolkit:NavigationInTransition>
</toolkit:TransitionService.NavigationInTransition>
<toolkit:TransitionService.NavigationOutTransition>
    <toolkit:NavigationOutTransition>
        <toolkit:NavigationOutTransition.Backward>
            <toolkit:TurnstileTransition Mode="BackwardOut"/>
        </toolkit:NavigationOutTransition.Backward>
        <toolkit:NavigationOutTransition.Forward>
            <toolkit:TurnstileTransition Mode="ForwardOut"/>
        </toolkit:NavigationOutTransition.Forward>
    </toolkit:NavigationOutTransition>
</toolkit:TransitionService.NavigationOutTransition>

这很好用,除非我在应用程序被墓碑化后重新激活它。过渡似乎中途停止。该应用程序保持响应,但看起来完全一团糟。像这样:

有人知道如何解决这个问题吗?我认为这可能与我的视图模型有关,并且它在过渡期间被填充......所以如果是这种情况,是否有一个事件我可以在过渡完成时订阅?然后我可以在我的视图模型中取消抑制属性更改事件。但是当我只是在我的应用中导航时,过渡效果很好,所以可能不是这样。

任何想法都将不胜感激。

【问题讨论】:

  • 我在多个应用程序中使用此代码blog.rsuter.com/?p=74 并没有看到这样的问题...
  • 该方法只允许一种类型的动画,对吧?我目前在不同页面中有许多不同的过渡动画,因为有时使用不同的过渡动画更有意义。
  • 出于某种原因,这样做对我有用......但它仍然没有任何意义。我仍然希望在每个页面上有不同的过渡(它们对我的应用程序的结构方式更有意义)
  • 给我看一些c#代码后面的代码..

标签: silverlight windows-phone-7 xaml transitions


【解决方案1】:

试试这个代码:http://blog.rsuter.com/?p=74

你可以在App.xaml中定义多个转场:

<Application.Resources>
    <ResourceDictionary>
        <Style x:Key="Transition" TargetType="phone:PhoneApplicationPage">
            ...
        </Style>
        <Style x:Key="Transition2" TargetType="phone:PhoneApplicationPage">
            ...
        </Style>
        <Style x:Key="Transition3" TargetType="phone:PhoneApplicationPage">
            ...
        </Style>
    </ResourceDictionary>
</Application.Resources>

并为每个页面设置过渡:

在第 1 页:

<phone:PhoneApplicationPage ... Style="{StaticResource Transition}">

在第 2 页:

<phone:PhoneApplicationPage ... Style="{StaticResource Transition2}">

在第 3 页:

<phone:PhoneApplicationPage ... Style="{StaticResource Transition3}">

您是否尝试过将资源声明移至页面?

类似这样的:

<phone:PhoneApplicationPage x:Name="MyPage">
    <phone:PhoneApplicationPage.Resources>
        <Style x:Key="LocalTransition">
            ...
        </Style>
    </phone:PhoneApplicationPage.Resources>
</phone:PhoneApplicationPage>

后面的C#代码:

public class MyPage
{
    public MyPage()
    {
        InitializeComponent();
        Style = (Style)Resources["LocalTransition"];
    }
}

【讨论】:

  • 我会尽快试一试并通知您
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
  • 1970-01-01
  • 2010-10-20
  • 1970-01-01
  • 2014-11-01
  • 1970-01-01
相关资源
最近更新 更多