Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Анимированный фоновый элемент управления в WPF?

Автор вопроса: RCIXОтветов: 5

В моем приложении WPF я хочу иметь анимированный фон, похожий на фон Media Center. . Есть ли бесплатный контроль, который предлагает это?

  • Упоминается в .NET Rocks, эпизод 952, 03 мин. 52 сек. - 05 мин. 35 сек. Peter Mortensen 21.02.2014
  • ВТФ? Это круто... ^_^ Marcel B 24.07.2014

backgroundwpfwpf-controlsanimated

Ответы

Ответ 1 · рейтинг 8 · Marcel B

Я бы предпочел анимировать фон границы с помощью раскадровки. Это довольно просто, и вы можете создать анимацию любой сложности. Вот краткий пример:

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

Вам также следует ознакомиться со статьей MSDN Обзор анимации эм>.

Ответ 2 · рейтинг 9 · Björn

Способ анимации фона:

Также можно установить для TargetProperty значение "(Background).(SolidColorBrush.Color)", как в этом примере:

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

Ответ 3 · рейтинг 1 · Akash Kava

Вы можете использовать сетку и поместить элемент видео в последний порядок z, и пусть его ширина и высота будут автоматическими, и вы можете воспроизвести в нем видео и поместить свой контейнер перед ним.

В сетке вы можете размещать объекты в указанном порядке z, вы можете создать свой собственный элемент управления анимацией и позволить ему работать как первый элемент управления, добавленный в сетку.

В настоящее время нет свойства Background, предлагающего какую-либо анимацию, они могут загружать только изображения.

Ответ 4 · рейтинг 1 · Darknight

Я бы попытался использовать векторную анимацию, если это возможно, воспроизведение видео (которое должно автоматически масштабироваться) не оптимально (с точки зрения обработки, масштабирования изображения и т. д.).

На мой взгляд, использование векторных фигур/кистей (даже 3D?) было бы намного лучше.

Ответ 5 · рейтинг -15 · David Veeneman

Гуглите "фоновая анимация". Вы получите 18 500 000 просмотров.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы