【问题标题】:How to do background music for my WPF-Application?如何为我的 WPF 应用程序制作背景音乐?
【发布时间】:2018-12-29 18:17:02
【问题描述】:

我在主窗口中有一个带有 3 个不同用户控件的 WPF 应用程序,当时只有其中一个可见。这就像拥有 3 个不同的页面,您可以在喜欢时从一个页面切换到另一个页面。第一页就像一个开始屏幕。二是像“一般看法”。第三页显示详细信息。使用 Storyboard 在它们之间切换可以正常工作。我只是使可见页面不可见(不透明度为零)并将其移出可见窗口区域并将新页面移动到可见窗口区域并使其可见。到目前为止一切顺利......(希望你明白我想说的^^)

现在我想要在显示详细信息页面时播放背景音乐。只有这样。不是当用户查看开始屏幕而不是一般视图时。

我想我必须用媒体元素制作一些东西。并使用我的故事板启动或停止媒体元素。

但是如何处理我的故事板中的媒体元素?

【问题讨论】:

    标签: wpf playback


    【解决方案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 中无法执行的参数(据我所知)。您可能需要使用后面的代码来触发动画。

    希望这会有所帮助...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-05
      • 1970-01-01
      • 1970-01-01
      • 2016-04-25
      • 2016-03-11
      • 2015-10-03
      相关资源
      最近更新 更多