如何通过 Storyboard 淡化 MediaElement Volume
How to fade MediaElement Volume by Storyboard
这是我的故事板
<Storyboard x:Name="SB_BattleSound">
<DoubleAnimation
x:Name="BattleSound"
Duration="0:0:0.5"
Storyboard.TargetProperty="(MediaElement.Volume)"
Storyboard.TargetName="battle"
d:IsOptimized="True">
</DoubleAnimation>
</Storyboard>
这里是 MediaElement
<MediaElement x:Name="battle" Source="Assets/Sounds/battle.mp3" Volume="0.0" IsLooping="True" AutoPlay="True" Height="0" Width="0" />
这里是淡入淡出的开始
BattleSound.From = 0.0;
BattleSound.To = 0.8;
SB_BattleSound.Begin();
没有错误,但也没有效果。我想目标 属性 是不是有问题?
您需要在动画上设置 EnableDependentAnimation="True"。默认情况下,只有系统可以判断的动画不会导致渲染和 UI 线程之间的依赖关系 运行。未明确知道安全的动画属性将被禁用,除非应用程序明确启用它们。
有关详细信息,请参阅 Dependent and independent animations in the Storyboarded animations MSDN 上的文档。
我认为这可以正常工作:
<Storyboard x:Name="SB_BattleSound">
<DoubleAnimation
x:Name="BattleSound"
Duration="0:0:0.5"
Storyboard.TargetProperty="(MediaElement.Volume)"
Storyboard.TargetName="battle"
EnableDependentAnimation="True"
d:IsOptimized="True">
</DoubleAnimation>
</Storyboard>
这是我的故事板
<Storyboard x:Name="SB_BattleSound">
<DoubleAnimation
x:Name="BattleSound"
Duration="0:0:0.5"
Storyboard.TargetProperty="(MediaElement.Volume)"
Storyboard.TargetName="battle"
d:IsOptimized="True">
</DoubleAnimation>
</Storyboard>
这里是 MediaElement
<MediaElement x:Name="battle" Source="Assets/Sounds/battle.mp3" Volume="0.0" IsLooping="True" AutoPlay="True" Height="0" Width="0" />
这里是淡入淡出的开始
BattleSound.From = 0.0;
BattleSound.To = 0.8;
SB_BattleSound.Begin();
没有错误,但也没有效果。我想目标 属性 是不是有问题?
您需要在动画上设置 EnableDependentAnimation="True"。默认情况下,只有系统可以判断的动画不会导致渲染和 UI 线程之间的依赖关系 运行。未明确知道安全的动画属性将被禁用,除非应用程序明确启用它们。
有关详细信息,请参阅 Dependent and independent animations in the Storyboarded animations MSDN 上的文档。
我认为这可以正常工作:
<Storyboard x:Name="SB_BattleSound">
<DoubleAnimation
x:Name="BattleSound"
Duration="0:0:0.5"
Storyboard.TargetProperty="(MediaElement.Volume)"
Storyboard.TargetName="battle"
EnableDependentAnimation="True"
d:IsOptimized="True">
</DoubleAnimation>
</Storyboard>