Как привязать MediaElement к Button в Application Resources (WPF)

Хочется, чтобы по нажатию любой кнопки в проекте срабатывал звук. По идее в стиле кнопки можно прописать:

        <Style.Triggers>
            <EventTrigger RoutedEvent="PreviewMouseDown">
                <SoundPlayerAction Source="sound.wav"/>
            </EventTrigger>
        </Style.Triggers>

но мне нужно изменять громкость звука. В SoundPlayerAction изменить громкость нельзя. Также должна быть возможность отключать звук во всех кнопках (думаю просто сделать громкость нулевой).

Для .NET Core не нашел решения по системному изменению громкости.

Пробую реализовать с использованием MediaElement

     <Style x:Key="Button" TargetType="{x:Type Button}">

        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Grid>
                        <MediaElement x:Name="myMediaElement"/>
                        <ContentPresenter x:Name="contentPresenter"/>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>

        <Style.Triggers>
            <EventTrigger RoutedEvent="Button.PreviewMouseDown">
                <EventTrigger.Actions>
                    <BeginStoryboard>
                        <Storyboard>
                            <MediaTimeline Source="sound.wav" Storyboard.TargetName="myMediaElement"/>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger.Actions>
            </EventTrigger>
        </Style.Triggers>

    </Style>

но после нажатия кнопки генерируется исключение:

Дерево Storyboard в стиля Style не указывать TargetName. Удалите TargetName "myMediaElement

Подскажите, пожалуйста в каком направлении копать.


Ответы (0 шт):