Программа чтения с экрана (NVDA) читает только WPF Window-Title

Я пытаюсь, чтобы средства чтения с экрана (я тестирую с NVDA) считывали AutomationProperties.Name и AutomationProperties.Helptext сфокусированных элементов управления.

Однако все, что он делает, это говорит «MAINWINDOW», когда я фокусирую приложение.

<Window x:Class="AutomationPropertiesTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="394" Width="307"       
    >

<Grid>
    <Label Content="Summand" Height="28" HorizontalAlignment="Left" Margin="12,8,0,0" Name="label1" VerticalAlignment="Top" />
    <Label Content="Summand" Height="28" HorizontalAlignment="Left" Margin="12,43,0,0" Name="label2" VerticalAlignment="Top" />
    <Label Content="Summe" Height="28" HorizontalAlignment="Left" Margin="12,125,0,0" Name="label3" VerticalAlignment="Top" />
    <Rectangle Height="2" HorizontalAlignment="Left" Margin="0,80,0,0" Name="rectangle1" Stroke="Black" VerticalAlignment="Top" Width="336" />


    <Button x:Name="btnBerechnen" Content="Berechnen" AutomationProperties.AutomationId="MainWindow_Button_Berechnen" AutomationProperties.IsRequiredForForm="True" AutomationProperties.Name="Summe Berechnen" AutomationProperties.HelpText="Mit diesem Knopf starten Sie die Berechnung" Height="23" HorizontalAlignment="Left" Margin="12,88,0,0" VerticalAlignment="Top" Width="261" />

    <TextBox x:Uid="summand 1" AutomationProperties.AutomationId="MainWindow_TextBox_Summand1" AutomationProperties.IsRequiredForForm="True" AutomationProperties.Name="Summand 1" AutomationProperties.HelpText="Bitte geben Sie den ersten Summanden ein" Height="23" HorizontalAlignment="Left" Margin="82,10,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" />
    <TextBox AutomationProperties.AutomationId="MainWindow_TextBox_Summand2" AutomationProperties.IsRequiredForForm="True" AutomationProperties.Name="Summand 2" AutomationProperties.HelpText="Bitte geben Sie den zweiten Summanden ein" Height="23" HorizontalAlignment="Left" Margin="82,43,0,0" Name="textBox2" VerticalAlignment="Top" Width="120" />
    <TextBox AutomationProperties.AutomationId="MainWindow_TextBox_Summe" AutomationProperties.IsRequiredForForm="False" AutomationProperties.Name="Summe" AutomationProperties.HelpText="Hier steht das Ergebnis" Height="26" HorizontalAlignment="Left" Margin="82,125,0,0" Name="textBox3" VerticalAlignment="Top" Width="120" />
</Grid>

Any ideas on how to fix this?


person Steav    schedule 21.06.2012    source источник


Ответы (1)


Сам нашел ответ ... это происходит только тогда, когда я запускаю программу (отлаживаю) из Visual Studio. Когда я запускаю сам .exe, он работает правильно.

person Steav    schedule 21.06.2012
comment
Это также происходит, если приложение запускается с повышенными правами/с правами администратора. - person daserge; 23.01.2019
comment
И, очевидно, запуск NVDA с повышенными правами позволяет ему получать доступ и читать такие приложения с повышенными правами. - person daserge; 23.01.2019