Я пытаюсь установить voice.gender для мужчин или женщин через ToggleSwitch на странице настроек в приложении Template10 UWP.UWP XAML ToggleSwitch для установки речи Синтез речи для мужчин или женщин
Объявляю TG:
<ToggleSwitch x:Name="VoiceSelection" Header="Select Voice"
IsOn="{Binding VoiceChoice, Mode=TwoWay}"
OffContent="Male Voice" OnContent="Female Voice" />
Это должно быть хорошо.
Затем я булево, который будет использовать для выбора мужского или женского пола позже
public event PropertyChangedEventHandler PropertyChanged;
public static bool _voiceChoice = true;
public bool VoiceChoice
{
get
{
return _voiceChoice;
}
set
{
_voiceChoice = value;
OnPropertyChanged("VoiceChoice");
}
}
protected void OnPropertyChanged(string name)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
}
Для информации, вот код, который позже присвоить голос. Это хорошо работает.
...
if (_voiceChoice == true)
{
VoiceInformation voiceInfo =
(
from voice in SpeechSynthesizer.AllVoices
where voice.Gender == VoiceGender.Female
select voice
).FirstOrDefault() ?? SpeechSynthesizer.DefaultVoice;
synthesizer.Voice = voiceInfo;
stream = await synthesizer.SynthesizeTextToStreamAsync(text);
}
else
...
Проблема у меня есть, я могу выбрать голос, установив вручную булево _voiceChoice, но я не могу установить через ToggleSwitch.
Я также понимаю, что это решение не очень чистое, и я открыт для любых предложений. Любая помощь приветствуется. Заранее спасибо.
Что вы подразумеваете под "can not set via ToggleSwitch"? Есть ли ошибка? Является ли сеттер свойства не вызванным? –
Что-то в коде неверно, мне хотелось бы знать, что .. :) –
Если вы установите контрольную точку в настройщике свойств и переверните переключатель, ударит ли точка останова? –