我试图在加载RibbonWindow时显示淡入动画。
下面是我所做的:
<ribbon:RibbonWindow.Resources>
<Storyboard x:Key="FadeInOnLoad">
<DoubleAnimation Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:2" FillBehavior="HoldEnd" >
<DoubleAnimation.EasingFunction>
<QuinticEase EasingMode="EaseIn"/>
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
</ribbon:RibbonWindow.Resources>
<ribbon:RibbonWindow.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard Storyboard="{StaticResource FadeInOnLoad}"/>
</EventTrigger>
</ribbon:RibbonWindow.Triggers>
但是,RibbonWindow不是开始时是透明的,而是显示为黑色,并逐渐淡入。
导致此行为的原因是什么?我如何修复它?
发布于 2012-06-10 07:05:48
问题是你的窗口不支持透明度。您可以在窗口标记上设置AllowsTransparency="True"
属性。但是,为了设置该属性,您还需要设置WindowStyle="None"
,否则将得到错误WindowStyle.None is the only valid value for WindowStyle when AllowsTransparency is true.
一旦你设置了这两个属性,你的窗口就会淡入,并且不再是黑色的。但是,窗口将没有边框,因为WindowStyle
被设置为None
。它看起来像这样:
此外,在情节提要完成后,您将无法更改代码中的WindowStyle,因为您将收到以下错误:Cannot change AllowsTransparency after a Window has been shown or WindowInteropHelper.EnsureHandle has been called.
因此,您只有两个选择:(如果您想要主窗口的淡入效果)
此外,这里有一个不需要在主窗口中淡入淡出的替代方案:
AllowsTransparency="True"
和WindowStyle="None"
创建一个常规窗口。您可以淡入(淡出)启动屏幕,然后显示主窗口,而不会淡入。https://stackoverflow.com/questions/10963412
复制相似问题