2009-08-29 6 views
11

Nella mia applicazione WPF, voglio avere uno sfondo animato ambient simile allo sfondo di Media Center. C'è un controllo gratuito che offre questo?Controllo sfondo animato in WPF?

+2

Citato in [ .NET Rocks, episodio 952] (http://www.dotnetrocks.com/default.aspx?showNum=952), 03 min 52 secondi - 05 min 35 secondi. –

+0

WTF? È fantastico ...^_^ –

risposta

8

Preferirei animare lo sfondo di un bordo tramite storyboard. È abbastanza semplice e puoi creare un'animazione complessa come preferisci. Ecco un breve esempio:

<Window x:Class="WpfApplication1.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1" Height="300" Width="300"> 
    <Window.Triggers> 
     <EventTrigger RoutedEvent="Window.Loaded"> 
      <BeginStoryboard> 
       <Storyboard AutoReverse="True" BeginTime="0" > 
        <DoubleAnimation Storyboard.TargetName="Foo" 
            Storyboard.TargetProperty="Offset" 
            From="0.2" To="0.8" Duration="0:0:10"/> 
       </Storyboard> 
      </BeginStoryboard> 
     </EventTrigger> 
    </Window.Triggers> 
    <Border> 
     <Border.Background> 
      <LinearGradientBrush StartPoint="0,0" EndPoint="1,1"> 
        <GradientStop Color="Yellow" Offset="0"/> 
        <GradientStop Color="Orange" Offset="0.2" x:Name="Foo"/> 
        <GradientStop Color="Red" Offset="1"/>    
      </LinearGradientBrush> 
     </Border.Background> 
    <!-- put your windowcontent(grid etc.) here --> 
    </Border> 
</Window> 

Si dovrebbe anche vedere l'articolo MSDN Animation Overview.

1

È possibile utilizzare una griglia e inserire un elemento video nell'ultimo ordine z e lasciare che la sua larghezza e altezza siano auto e che sia possibile riprodurre un video e posizionare il contenitore davanti ad esso.

Nella griglia è possibile inserire oggetti nell'ordine z specificato, è possibile creare il controllo dell'animazione personalizzato e lasciarlo eseguire come primo controllo aggiunto nella griglia.

Attualmente non ci sono proprietà di sfondo che offrono animazioni, possono solo caricare immagini.

+0

Quindi il mio quesiton è questo: dove posso ottenere un video del genere? :) – RCIX

+0

Beh, ci sono iStockPhoto e tali siti di vendita di contenuti gratuiti come royaltee simili, puoi usarne uno, non sono costosi e puoi ottenere una ricca varietà di video di sottofondo. –

-14

Google "animazione di sfondo". Riceverai 18.500.000 di risultati.

+2

Risposta sbagliata ... –

1

Vorrei provare a utilizzare animazioni vettoriali, se possibile, la riproduzione di un video (che deve scalare automaticamente) non è ottimale (in termini di elaborazione, ridimensionamento dell'immagine ecc.).

L'utilizzo di forme vettoriali/pennelli (anche 3D?) Sarebbe molto meglio a mio avviso.

8

Un modo per animare lo sfondo è:

E 'anche possibile impostare la TargetProperty a "(Background) (SolidColorBrush.Color).", Come in questo esempio:

<ColorAnimation 
    Storyboard.TargetName = "lblSubGroup" 
    Storyboard.TargetProperty = "(Background).(SolidColorBrush.Color)" 
    From = "White" 
    To = "Navy" 
    Duration = "0:0:3" 
    AutoReverse = "True"/>