WPF3.5の新機能② SoundPlayerAction

WPF 3.5 では軽量なサウンド再生プレーヤとして、SoundPlayerAction が追加されました。

しかし、これは、MediaElementのように音楽再生に使うようなものではなく、EventTrigger に対する応答性を向上させた反応音のようなものに使うプレーヤです。MediaElement が FrameworkElement を継承しているのと違って、SoundPlayerAction は TriggerAction の派生クラスです。

SDK にある Media Gallary サンプルの「Sound from User Event Sample」タブは、EediaElement + Storyboard と SoundPlayerAction が比較できるサンプルです。SoundPlayerAction は次のように EventTrigger 内で使います。

<Page xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"

  xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" >

  <Page.Triggers>

    <EventTrigger RoutedEvent="Button.Click"
SourceName="clickButton">

      <EventTrigger.Actions>

        <SoundPlayerAction Source="media\lowbat.wav"/>

      </EventTrigger.Actions>

    </EventTrigger>

    <EventTrigger RoutedEvent="Button.MouseEnter"
SourceName="hoverButton">

      <EventTrigger.Actions>

        <SoundPlayerAction Source="media\tada.wav"/>

      </EventTrigger.Actions>

    </EventTrigger>

  </Page.Triggers>

  <StackPanel Width="200">

    <Button Name="clickButton">クリックでサウンド再生</Button>

    <Button Name="hoverButton">マウスを置くとサウンド再生</Button>

  </StackPanel>

</Page>