WPF Live-Регионы только для рассказчика? - PullRequest
0 голосов
/ 28 января 2019

У меня есть текстовый блок (ContentTextBlock) с AutomationProperties.LiveSettings="Assertive".Я просто тестирую и проверяю, насколько полезна эта функция.И ... пока разочарован.

private void Button_Click(object sender, RoutedEventArgs e)
{
   ContentTextBlock.Text += " test";
    var peer = UIElementAutomationPeer.FromElement(ContentTextBlock);
    if(peer == null)
    {
    peer = UIElementAutomationPeer.CreatePeerForElement(ContentTextBlock);
peer.RaiseAutomationEvent(AutomationEvents.LiveRegionChanged);
    }
peer.RaiseAutomationEvent(AutomationEvents.LiveRegionChanged);
}

При использовании Narrator это работает так, как рекламируется.Всякий раз, когда нажимаете кнопку, Narrator объявляет текст TextBlock («тест», «тестовый тест», «тестовый тестовый тест») ... Но когда я использую NVDA или JAWS, ничего не происходит, хотя версии программы чтения с экрана относительно современны.Они действительно не добавили поддержки живым регионам или я просто упустил важный момент?

1 Ответ

0 голосов
/ 28 января 2019

Хотя мне не удалось заставить работать живые регионы, я нашел другой обходной путь:

Tolk от Davy Kager

Tolk - это библиотека, которая может,среди других

  • Обнаружение поддерживаемой программы чтения с экрана, если таковая имеется
  • Передача строк в речевой движок программы чтения с экрана и шрифт Брайля.
  • Также имеется поддержка SAPI

Чтобы включить Tolk в свой проект C #, загрузите его по ссылке выше, затем включите tolk.cs (из src/dotnet) в свой проект и поместите tolk.dll (он находится в bin) в папке с вашим исполняемым файлом (или где-то в переменной PATH).Убедитесь, что версия dll соответствует вашей цели процессора (x86 / x64).Сделайте то же самое для dll в каталоге lib.Затем вы можете использовать его в соответствии с кодом, найденным в папке примеров.

PS.Толк тоже работает на Win 7, так что это бонус.Live-регионы WPF поддерживаются только из Win 8 on.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...