私の WPF アプリケーションでは、Media Centerの背景に似たアンビエント アニメーションの背景が必要です。これを提供する無料のコントロールはありますか?
5 に答える
背景をアニメーション化する方法は次のとおりです。
次の例のように、TargetProperty を "(Background).(SolidColorBrush.Color)" に設定することもできます。
<ColorAnimation
Storyboard.TargetName = "lblSubGroup"
Storyboard.TargetProperty = "(Background).(SolidColorBrush.Color)"
From = "White"
To = "Navy"
Duration = "0:0:3"
AutoReverse = "True"/>
ストーリーボードを介して境界線の背景をアニメーション化することをお勧めします。とても簡単で、好きなだけ複雑なアニメーションを作成できます。以下に短い例を示します。
<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 の記事Animation Overviewも参照してください。
可能であればベクター アニメーションを使用してみますが、ビデオの再生 (自動的にスケーリングする必要がある) は最適ではありません (処理、画像スケーリングなどの点で)。
私の見解では、ベクターシェイプ/ブラシ (3D でさえ?) を使用する方がはるかに優れています。
グリッドを使用してビデオ要素を最後の z オーダーに配置し、その幅と高さを自動にすると、ビデオを再生してその前にコンテナを配置できます。
グリッドでは、指定した z オーダーにオブジェクトを配置できます。カスタム アニメーション コントロールを作成し、グリッドに追加された最初のコントロールとして実行できます。
現在、アニメーションを提供する Background プロパティはなく、画像のみをロードできます。
グーグル「背景アニメーション」。18,500,000 ヒットを取得します。