2011-01-31 4 views
0


je le XAML suivant sur ma page:Comment effectuer une transition en douceur d'un contrôle WebBrowser à une image dans Silverlight 4?

<Grid x:Name="LayoutRoot"> 
     <Viewbox Stretch="Uniform"> 
     <Image x:Name="myImage" /> 
    </Viewbox> 
    <WebBrowser x:Name="myBrowser" /> 
</Grid> 

puis dans le codebehind je passe la visibilité entre l'image et le contenu du navigateur:

myBrowser.Visibility = Visibility.Collapsed; 
      myImage.Source = new BitmapImage(new Uri(p)); 
      myImage.Visibility = Visibility.Visible; 

et

myImage.Visibility = Visibility.Collapsed; 
      myBrowser.Source = new Uri(myPath + p, UriKind.Absolute); 
      myBrowser.Visibility = Visibility.Visible; 

Cela fonctionne bien, mais ce que le client veut maintenant est une transition en douceur entre le moment où l'image est affiché et lorsque le navigateur est affiché. J'ai essayé plusieurs approches mais je suis toujours tombé dans une impasse. As tu des idées? J'ai essayé de régler deux états en utilisant le VSM et d'afficher un rectangle blanc en superposition, avant que le swap ait lieu, mais cela n'a pas fonctionné (je suppose que c'est parce que rien ne peut être placé au-dessus du WebBrowser?) J'ai essayé de régler la visibilité du contrôle d'image et le contrôle webbrowser en utilisant le VSM, mais cela n'a pas fonctionné non plus. Je ne sais vraiment pas quoi d'autre pour essayer de résoudre cette tâche simple.

Toute aide est grandement appréciée.

Répondre

0

Si vous recherchez une transition "douce" que vous souhaiterez peut-être essayer d'activer et de désactiver. Animez l'opacité de chaque objet. Par exemple, définissez l'opacité de la ViewBox sur zéro et l'opacité de l'image sur 100. Ensuite, animez la propriété opacity des deux objets.

Le résultat final sera une transition en douceur d'un objet à l'autre.

Voici un article MSDN pour vous lancer: Animation Overview

+0

Salut, merci pour la réponse. Les deux objets que j'essaie de faire la transition sont Image et WebBrowser. Et cela semble être le problème: WebBrowser ne me permet pas d'animer l'opacité (au moins, je ne suis pas capable de le faire fonctionner). Cela ne me permet pas non plus de dessiner quoi que ce soit (pour autant que je sache, ce n'est pas possible actuellement avec SL4). – Trex

+0

Pouvez-vous poster le code pour votre animation? La classe WebBrowser possède une propriété Opacity et cela signifie qu'elle devrait être animable (est-ce même un mot?) - Voir la classe MSDN WebBrowser: http://msdn.microsoft.com/en-us/library/system.windows. controls.webbrowser (v = vs.95) .aspx –

+1

On dirait que vous avez raison sur Opacity. J'ai testé et la modification de l'opacité d'un contrôle WebBrowser n'a aucun effet. Vous avez probablement besoin de commencer à regarder d'autres types de transitions, comme animer le WebBrowser hors du canevas, puis animer l'image de hors toile à sur toile. –

Questions connexes