我正在手机上开发Windows通用应用程序(XAML,C#),并且可以为讲述人提供辅助功能。有没有人知道如何在打开页面时自动获取叙述者以阅读页面标题?
我尝试在页面中设置automationproperties.name但是没有工作:
<Page
x:Class="xxxxxx"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
AutomationProperties.Name="Page title to be read"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
答案 0 :(得分:0)
当您在列表中选择控件或编辑文本框时,将应用Narrator for UWP的功能。如果您想在打开应用程序时阅读内容,您应该使用SpeechSynthesizer API,这非常容易实现:
1.-在XAML中添加媒体元素
<MediaElement x:Name="MediaElement"/>
2.-然后在页面后面的代码中:
public MainPage()
{
this.InitializeComponent();
this.Loaded += MainPage_Loaded;
}
private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
ReadTitle();
}
private async void ReadTitle()
{
var voice = SpeechSynthesizer.AllVoices.First();
SpeechSynthesizer reader = new SpeechSynthesizer() { Voice = voice };
var text= this.GetValue(AutomationProperties.NameProperty) as String;
await reader.SynthesizeTextToStreamAsync(text);
MediaElement.SetSource(stream, stream.ContentType);
MediaElement.Play();
}
您可以阅读将字符串传递给读者的所有内容。
答案 1 :(得分:0)
你需要通过叙述者进行查看。我不相信你可以在Page Class中声明Name属性。在您的网页内容中尝试这样的内容:
<HyperlinkButton
NavigateUri="www.bing.com"
AutomationProperties.AutomationID="bing url" //Not Required to work
AutomationProperties.Name="Go to the Bing Homepage"//Narrator will read this
<StackPanel>
<TextBlock Text="Bing Dot Com" />
<TextBlock Text="www.bing.com" />
<StackPanel>
</HyperlinkButton>
编辑:您可能还需要以编程方式将焦点设置在项目上才能使其正常工作