使用Narrator读取RichTextBlock内容
先测试基本的RichTextBlock,看能否读取。 测试RichTextBlock中哪些子控件是可以被读取的。
结论:只有Hyperlink能Tab到,能被读取。
问题:RichTextBlock在获取焦点Focus()后,Narrator也不能读取其内容或AutomationProperties.Name。
方案A:将RichTextBlock rtb1的选中内容放入一个TextBox tb2,将焦点转移到tb2.
方案A问题1:选取是一个动态持续过程,焦点转移会导致选取中断。
方案A1a:检测鼠标动作,在其鼠标MouseUp后才转移焦点。(无MouseUp事件,此路不通)
方案A1b:光标或选中内容不再变化一段时间后才转移焦点。------------------------------------------ ok
方案A问题2: 焦点转移导致RichTextBlock选中效果消失。
方案A2a:焦点转移至tb2后,将RichTextBlock rtb1的选中内容Style修改为选中的,在rtb1选中内容改变后恢复。
方案A2b:焦点转移至tb2后,再将焦点转移回RichTextBlock. --------------------------------------- ok
新问题:选中部分由于焦点的转移,会有闪一下的效果。
新问题方案1:如果能只在Natrattor运行时才转移焦点更好。(无法获取Process信息,此路不通)
新问题方案2:做个设置开关,只在需要时打开。 --------------------------------------- ok
其实Narrator是支持读取RichTextBlock内容的:
After checked the CheckBox of “Read and interact with the screen using the mouse” in Narrator Settings/Navigation, Narrator can read RichTextBlock and TextBlock.
使用Narrator读取RichTextBlock内容的更多相关文章
- POI读取Excel内容格式化
在用POI读取Excel内容时,经常会遇到数据格式化的问题. 比如:数字12365会变为12365.0;字符串数字123也会变为123.0,甚至会被变为科学计数法.另外日期格式化也是一个头疼的问题.其 ...
- shell读取文件内容
Shell脚本,执行解释速度快.代码简单易于理解.在shell代码编写过程中,经常会用到读取文件内容. 写法一: ------------------------------------ ...
- C# 读取Excel内容
一.方法 1.OleD方法实现该功能. 2.本次随笔内容只包含读取Excel内容,并另存为. 二.代码 (1)找到文档代码 OpenFileDialog openFile = new OpenFile ...
- java读取word内容
暂时只写读取word内容的方法. 依赖的jar: poi-3.9-20121203.jarpoi-ooxml-3.9-20121203.jarxmlbeans-2.3.0.jar package co ...
- Python跳过第一行读取文件内容
Python编程时,经常需要跳过第一行读取文件内容.比较容易想到是为每行设置一个line_num,然后判断line_num是否为1,如果不等于1,则进行读取操作.相应的Python代码如下: inpu ...
- 用c#读取文件内容中文是乱码的解决方法:
用c#读取文件内容中文是乱码的解决方法: //方法1: StreamReader din = new StreamReader(@"C:\1.txt", System.Text.E ...
- android按行读取文件内容的几个方法
一.简单版 import java.io.FileInputStream; void readFileOnLine(){ String strFileName = "Filename.txt ...
- android逐行读取文件内容以及保存为文件
用于长时间使用的apk,并且有规律性的数据 1,逐行读取文件内容 //首先定义一个数据类型,用于保存读取文件的内容 class WeightRecord { String timestamp; flo ...
- 7 RandomAccessFile读取文件内容保存--简单例子(需要验证)
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.*; /** * 读取动态产生的文件内容 */ publ ...
随机推荐
- CUDA 编程的基本模式
reproduced from: http://www.cnblogs.com/muchen/p/6306747.html 前言 本文将介绍 CUDA 编程的基本模式,所有 CUDA 程序都基于此模式 ...
- SecureCRT 上传下载
1.菜单栏Options-Session Options-SFTP Session 设置上传/下载目录 2.选择File-Connect SFTP Session进入SFTP窗口 3.命令 ls pw ...
- NumPy IO
NumPy IO Numpy 可以读写磁盘上的文本数据或二进制数据. NumPy 为 ndarray 对象引入了一个简单的文件格式:npy. npy 文件用于存储重建 ndarray 所需的数据.图形 ...
- Codeforces Beta Round #75 (Div. 2 Only)
Codeforces Beta Round #75 (Div. 2 Only) http://codeforces.com/contest/92 A #include<iostream> ...
- IE浏览器调试工具不能使用
Mac 使用VMware Fusion虚拟机,安装Windows 7 Service Pack 1 (SP1). 移除自带的IE8,下载并安装IE11(64位). IE 11 调试工具不能使用,并且调 ...
- sql语句Order by 报错列名不明确
select top 10 column1,column2,column3 from table1 where table1.id not in(select top 0 table1.id from ...
- java NIO buffer --directBuffer (2)
HeapBuffer ----堆缓冲 :其实是在java 的内存模型中,java 虚拟机可以直接管控的 DirectBuffer ---直接缓冲 :使用的是native ,与操作系统挂钩,调用的 ...
- day 24 socket 黏包
socket 套接字的使用: tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端 server 端 import socket sk = socket.socket() # 实例化一个 ...
- YII2中查询生成器Query()的使用
YII2中的yii\db\Query给我们提供了非常丰富的方法,方便我们构建复杂的SQL语句. Query()与createCommand最大区别在于,后者直接使用我们写好的SQL语句,前者通过参数和 ...
- datepicker动态初始化
datepicker 初始化动态表单的input,需要调用jquery的on方法来给未来元素初始化. //对动态添加的时间文本框进行动态初始化 $('table').on("focus&qu ...