XAML

<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
    <TabControl x:Name="TabControl1">
        <TabItem Header="General"/>
        <TabItem Header="Security" />
        <TabItem Header="Details" />
    </TabControl>
</Grid>
</Window>

Vb.net

Class MainWindow
Private Sub TabControl1_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles TabControl1.SelectionChanged
    System.Media.SystemSounds.Asterisk.Play()
End Sub
End Class

Я хочу воспроизводить звук, когда пользователь нажимает на каждый элемент вкладки.

Приведенные выше коды воспроизводят звук во время открытия окна, чего я не хочу.

Итак, как предотвратить воспроизведение звука при открытии окна?

0
user6069814 15 Мар 2018 в 13:57

1 ответ

Лучший ответ

Для этой цели можно использовать свойство IsLoaded в Window.

Вы можете проверить значение IsLoaded, чтобы определить, воспроизводить звук или нет (вполне возможно, что есть синтаксические ошибки, мой VB.NET не так хорош;))

Class MainWindow
    Private Sub TabControl1_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles TabControl1.SelectionChanged
        If IsLoaded Then
            System.Media.SystemSounds.Asterisk.Play()
        End If
    End Sub
End Class

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

0
Paul Kertscher 15 Мар 2018 в 15:23