2009-08-29 8 views
11

En mi aplicación WPF, quiero tener un fondo animado ambiental similar al fondo Media Center. ¿Hay un control libre que ofrece esto?Control animado de fondo en WPF?

+2

Se hace referencia en [ .NET Rocks, episodio 952] (http://www.dotnetrocks.com/default.aspx?showNum=952), 03 min. 52 seg. - 05 min. 35 seg. –

+0

WTF? Eso es increíble ...^_^ –

Respuesta

8

Preferiría animar el fondo de un borde a través del guión gráfico. Es bastante fácil y puedes crear una animación tan compleja como desees. Aquí está un ejemplo corto:

<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> 

También debe ver el artículo de MSDN Animation Overview.

1

Puede usar una cuadrícula y poner un elemento de video en el último orden z, y deje que su ancho y alto sean automáticos y puede reproducir un video y colocar su contenedor frente a él.

En la cuadrícula puede colocar los objetos en el orden z especificado, puede crear su control de animación personalizado y dejar que se ejecute como primer control agregado en la cuadrícula.

Actualmente no hay ninguna propiedad de Fondo que ofrezca animación, solo pueden cargar imágenes.

+0

Entonces mi pregunta es esta: ¿dónde puedo obtener un video así? :) – RCIX

+0

Bueno, hay iStockPhoto y sitios similares similares sin royalties de venta de contenido, puedes usar uno de ellos, no son tan caros y puedes obtener una rica variedad de videos de fondo. –

-14

Google "animación de fondo". Obtendrás 18,500,000 visitas.

+2

Respuesta incorrecta ... –

1

Intentaré utilizar animaciones vectoriales si es posible, reproducir un video (que tiene que escalar automáticamente) no es óptimo (en términos de procesamiento, escalado de imagen, etc.).

El uso de formas/pinceles vectoriales (¿incluso 3D?) Sería mucho mejor en mi opinión.

8

Una manera para animar el fondo es:

También es posible ajustar el TargetProperty a "(fondo) (SolidColorBrush.Color).", Como en este ejemplo:

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