2010-06-30 109 views
1

我有一个WPF应用程序与主窗口中的3个不同的用户控件,只有其中一个是可见的。这就像有3个不同的页面,当你喜欢它时,你可以从一个页面切换到另一个页面。第一页就像一个开始屏幕。其次就像“普遍观点”。第三页显示细节。在Storyboard之间切换可以很好地工作。我只是使可见页面不可见(不透明度为零)并将其移出可见窗口区域,并将新页面移动到可见窗口区域并使其可见。到目前为止这么好...(希望你明白我想告诉^^)如何为我的WPF应用程序做背景音乐?

现在我想要播放背景音乐,就在显示详细信息页面时。只有那样。不是当用户在普通视图中查看启动画面时。

我觉得我必须做一个mediaelement东西。用故事板开始或停止mediaelement。

但是,如何处理Storyboard中的mediaelements?

回答

1

你有正确的观念:

  • 使用在任何布局容器的MediaElement(网格,边界,等等)您的详细信息页面放在

    <MediaElement x:Name="myMediaElement" />

  • 让你的故事板拥有MediaTimeline的资源

    <Window.Resources> 
    <Storyboard x:Key="PlaySoundStoryboard"> 
        <MediaTimeline Storyboard.TargetName="myMediaElement" Source="whatever.mp3" /> 
    </Storyboard> 
    

  • 我知道按钮和东西,你可以使用事件触发启动和停止故事板:

    <Grid x:Name="LayoutRoot"> 
        <Grid.Triggers> 
         <EventTrigger RoutedEvent="ButtonBase.Click" SourceName="playbutton"> 
          <BeginStoryboard Storyboard="{StaticResource PlaySoundStoryboard}" Name="theStoryboard" /> 
         </EventTrigger> 
         <EventTrigger RoutedEvent="ButtonBase.Click" SourceName="stopbutton"> 
          <StopStoryboard BeginStoryboardName="theStoryboard" /> 
         </EventTrigger> 
        </Grid.Triggers> 
        <MediaElement x:Name="myMediaElement" /> 
        <Button Name="playbutton">play</Button> 
        <Button Name="stopbutton">stop</Button> 
    </Grid> 
    

但我不知道你将如何为的知名度做到这一点集装箱。 IsVisibleChanged会要求你看看你在XAML中无法完成的论点(据我所知)。您可能需要使用后面的代码触发动画。

希望这会有所帮助...

+0

好的,谢谢。我会尝试的! – user370446 2010-07-01 06:36:54