Как привязать 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
Подскажите, пожалуйста в каком направлении копать.