2012-06-09 6 views
0

RibbonWindow로드시 페이드 인 애니메이션을 표시하려고합니다.로드시 페이드 인 할 때 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 검은 나타나고 그 페이드

어떤이 동작이 발생할 수 있고, 내가 그것을 어떻게 해결합니까.?

답변

1

문제는 귀하의 Window가 투명성을 지원하지 않는다는 것입니다. Window 태그에 AllowsTransparency="True" 속성을 설정할 수 있습니다. 그러나 해당 속성을 설정하려면 WindowStyle="None"도 설정해야합니다. 그렇지 않으면 오류가 발생합니다. WindowStyle.None is the only valid value for WindowStyle when AllowsTransparency is true.

두 속성을 설정하면 창은 잘 사라지고 더 이상 검정색이 아닙니다. 그러나 WindowStyleNone으로 설정되어 있기 때문에 창에 테두리가 표시되지 않습니다. 또한 Window with no border

스토리 보드가 완료되면이 오류 얻을 수 있기 때문에, 당신은 코드에서 WindowStyle을 변경할 수 없습니다 : : 그래서 Cannot change AllowsTransparency after a Window has been shown or WindowInteropHelper.EnsureHandle has been called.

을, 당신이 남아 있습니다 그것은 다음과 같이 표시됩니다 두 가지 선택 사항 : (기본 창에 페이드 인 효과를 원하는 경우)

  • 창에 맞는 스타일을 지정하십시오. 일반 윈도우처럼 보이지 않을 것입니다. 테두리를 지정하고, 최소화/최대화/닫기 버튼을 생성해야합니다.
  • 창을 페이드 아웃하고 애니메이션이 완료되면 다른 동일한 창을 만듭니다. 창문이 퇴색했다. 두 번째 창이 희미 해지지는 않지만 첫 번째 창과 정확하게 같습니다. 첫 번째 창 상단에 두 번째 창을 표시하면 첫 번째 창을 닫을 수 있습니다.

    • 앱의 시작 화면을 확인 :

  • 또한, 여기에 메인 창에 페이딩이 필요없는 대안이다. 내장 된 WPF 스플래시 화면을 사용하거나 AllowsTransparency="True"WindowStyle="None"과 함께 일반 창을 만들 수 있습니다. 스플래시 화면을 페이드 인 (및 아웃) 할 수 있으며, 이후에 메인 윈도우를 페이드 인하 지 않고 표시 할 수 있습니다.
관련 문제