2011-01-14 19 views
7

Tengo el problema de que cada vez que uso las Transiciones de página de Windows Phone 7 Toolkit, las transiciones son muy lentas y toda la aplicación parece tener caídas enmarcadas. Las animaciones son "tartamudeo".Windows Phone 7 Transiciones de página muy lentas con Toolkit

¿Alguien más está experimentando esto? estoy usando la clase TransitionFrame como RootFrame y en las páginas .xaml estoy usando un código como

<toolkit:TransitionService.NavigationInTransition> 
     <toolkit:NavigationInTransition> 
      <toolkit:NavigationInTransition.Backward> 
       <toolkit:TurnstileTransition Mode="BackwardIn"/> 
      </toolkit:NavigationInTransition.Backward> 
      <toolkit:NavigationInTransition.Forward> 
       <toolkit:SlideTransition Mode="SlideDownFadeOut" /> 
      </toolkit:NavigationInTransition.Forward> 
     </toolkit:NavigationInTransition> 
    </toolkit:TransitionService.NavigationInTransition> 
+0

Estas animaciones vacilantes también se pueden ver en PhoneToolkitSample. Cuando hace clic en el botón [Ver la transición seleccionada] varias veces, las animaciones no se ejecutan igualmente uniforme cada vez. Creo que es lo mismo en el dispositivo ... Lo probaré mañana. – j00hi

Respuesta

9

Recomendaría no usar las animaciones de Transición de Página de WP7 Toolkit.

Si activa los contadores de rendimiento puede ver que con solo cambiar el cuadro raíz al marco WP7, su tasa de relleno aumenta en 1. Dado que las tasas de llenado incluso en la mejor de las aplicaciones son 1.5+ y el máximo recomendado 2.5, yo diría que eso es muy malo.

Telerik tiene un control de transición de página WP7 que tal vez quiera pagar. Pero, sinceramente, no pude encontrar/codificar ninguna transición de página genérica que ofrezca un efecto de cambio de página de buen rendimiento.

+1

Ahora he intentado aplicar los guiones gráficos desde el Toolkit (TurnstileForwardIn, etc.) directamente en mis contenedores LayoutRoot en las páginas (por ejemplo, en los métodos OnNavigatedTo). ¡Ahora las animaciones parecen funcionar sin problemas! ¿Por qué crees que el rendimiento del kit de herramientas es tan malo? ¿Es porque el kit de herramientas está animando la PhoneApplicationPage (o el Frame?) Y cuando escribo mis propias animaciones, ¿puedo animar el LayoutRoot-container que es más rápido? Y otra pregunta: ¿cómo puedo activar esos contadores de rendimiento? – j00hi

+1

@ j00hi use Application.Current.Host.Settings.EnableFrameRateCounter = true; en el constructor de la aplicación.xaml.cs para habilitar los contadores de tasa de cuadros. – murki

+0

@ j00hi ¿cómo aplicaste los guiones gráficos directamente? Estoy teniendo los mismos problemas y me gustaría probar – Mac

3

El latest changeset incluyen algunas mejoras de rendimiento para las transiciones. Podrías probarlos.

WHat en la página también podría afectar el rendimiento. ¿Contiene mucho? o cualquier evento/guión gráfico que podría estar siendo desencadenado por la transición?

+0

Gracias por el enlace. Lamentablemente, no es mejor con el último conjunto de cambios. No hay mucho en mi página. Básicamente, solo un ListBox que está lleno de datos estáticos en la función del manipulador de eventos cargado. Estoy usando el kit de herramientas y ControlTiltEffect en las páginas, eso es todo. – j00hi

1

¡La nueva versión del kit de herramientas de Silverlight (11 de agosto) es mucho más rápida que la anterior! La animación de transición comienza justo después de hacer clic en un elemento. Probarlo, finalmente, también hay que cambiar otras bibliotecas (por ejemplo Microsoft.Phone.Controls) que se encuentran en

C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Libraries\Silverlight 

kit de herramientas se pueden encontrar en:

C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Toolkit\Aug11 
1

Esto podría ayudar Link,

el marco está pintado con el color de fondo del pincel con cada marco , así como la página que se está pintando.

Lo llamativo de esto es que está pintando el color que es igual que el fondo detrás de todos modos. Si el tema seleccionado tiene , un fondo oscuro está pintando de negro sobre negro. O bien, si el tema tiene un fondo claro, pinta de blanco sobre blanco.

Si combinamos este conocimiento del trabajo innecesario, el TransitionFrame está haciendo con el hecho de que cualquier elemento transparente no contribuye a la tasa de llenado que se nos presenta. Solo necesitamos hacer que el fondo del TransitionFrame sea transparente