2010-03-26 10 views
4

Est-ce que quelqu'un sait s'il est possible d'animer app.current.mainwindow.width de sorte que vous obteniez une belle animation avec l'assouplissement si vous redimensionniez par programme la fenêtre des applications oob. Merci.Silverlight 4 et hors du navigateur

Répondre

1

Le moyen le plus simple consiste à ajouter un contrôle de curseur à votre page. Le curseur peut être réduit et n'est utilisé que pour avoir une propriété facile à animer. Animez la propriété Value du curseur. Dans l'événement ValueChanged du curseur, mettez à jour la largeur de la fenêtre. Vous avez besoin d'une poussée élevée pour le faire.

Il ressemble à ceci:

Xaml

<UserControl.Resources> 
    <Storyboard x:Name="Storyboard1"> 
    <DoubleAnimation Duration="0:0:1" To="750" 
        Storyboard.TargetProperty="(RangeBase.Value)" 
        Storyboard.TargetName="slider1"> 
     <DoubleAnimation.EasingFunction> 
     <BounceEase EasingMode="EaseOut"/> 
     </DoubleAnimation.EasingFunction> 
    </DoubleAnimation> 
    </Storyboard>  
</UserControl.Resources> 

<Grid x:Name="LayoutRoot" Background="Green"> 
    <Button Width="50" Height="32" Click="Button_Click">Test</Button> 
    <Slider Visibility="Collapsed" VerticalAlignment="Bottom" 
      x:Name="slider1" Maximum="1000" 
      ValueChanged="slider1_ValueChanged" /> 
</Grid> 

code Derrière

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    Storyboard1.Begin(); 
} 

private void slider1_ValueChanged(object sender, 
            RoutedPropertyChangedEventArgs<double> e) 
{ 
    Application.Current.MainWindow.Width = e.NewValue; 
} 
1

Vous devriez vérifier this Channel 9 presentation pour personnaliser la fenêtre chrome dans la prise en charge hors navigateur. Votre application nécessite une confiance élevée pour personnaliser le chrome, mais cela peut vous permettre de faire ce que vous voulez faire.

Questions connexes