先测试基本的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内容的更多相关文章

  1. POI读取Excel内容格式化

    在用POI读取Excel内容时,经常会遇到数据格式化的问题. 比如:数字12365会变为12365.0;字符串数字123也会变为123.0,甚至会被变为科学计数法.另外日期格式化也是一个头疼的问题.其 ...

  2. shell读取文件内容

           Shell脚本,执行解释速度快.代码简单易于理解.在shell代码编写过程中,经常会用到读取文件内容. 写法一: ------------------------------------ ...

  3. C# 读取Excel内容

    一.方法 1.OleD方法实现该功能. 2.本次随笔内容只包含读取Excel内容,并另存为. 二.代码 (1)找到文档代码 OpenFileDialog openFile = new OpenFile ...

  4. java读取word内容

    暂时只写读取word内容的方法. 依赖的jar: poi-3.9-20121203.jarpoi-ooxml-3.9-20121203.jarxmlbeans-2.3.0.jar package co ...

  5. Python跳过第一行读取文件内容

    Python编程时,经常需要跳过第一行读取文件内容.比较容易想到是为每行设置一个line_num,然后判断line_num是否为1,如果不等于1,则进行读取操作.相应的Python代码如下: inpu ...

  6. 用c#读取文件内容中文是乱码的解决方法:

    用c#读取文件内容中文是乱码的解决方法: //方法1: StreamReader din = new StreamReader(@"C:\1.txt", System.Text.E ...

  7. android按行读取文件内容的几个方法

    一.简单版 import java.io.FileInputStream; void readFileOnLine(){ String strFileName = "Filename.txt ...

  8. android逐行读取文件内容以及保存为文件

    用于长时间使用的apk,并且有规律性的数据 1,逐行读取文件内容 //首先定义一个数据类型,用于保存读取文件的内容 class WeightRecord { String timestamp; flo ...

  9. 7 RandomAccessFile读取文件内容保存--简单例子(需要验证)

    import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.*; /** * 读取动态产生的文件内容 */ publ ...

随机推荐

  1. 启动Tomcat的小细节--MyEclipse

    1.先停掉Tomcat 2.然后再Redeploy项目 3.然后再启动Tomcat. 这样的好处是 代码彻底编译

  2. 数据库表字段,DEFAULT NULL与NOT NULL DEFAULT

    为什么要把字段设置成not null 呢? 1.空值是不占用空间的 2.mysql中的NULL其实是占用空间的,下面是来自于MYSQL官方的解释 “NULL columns require addit ...

  3. openstack 相关服务常用命令整理

    1. 数据库: # systemctl start mysqld # systemctl enable mysqld # systemctl status mysqld #mysql> show ...

  4. 侯捷STL课程及源码剖析学习3: 深度探索容器list

    一.容器概览 上图为 GI STL 2.9的各种容器.图中以内缩方式来表达基层与衍生层的关系.所谓的衍生,并非继承(inheritance)关系,而是内含(containment)关系.例如 heap ...

  5. Android 集成高德地图

    先上一张图片看看实现的效果啦!!! 首先登陆高德的开发者平台进行创建自己的应用程序,填写对应的包名,填写sHA1值(这个我这博客中写了获取的代码,可以直接复制粘贴),说了这么多其实都是废话,来我们看重 ...

  6. c#: UrlDecode()

    1.源起: KV需要解析从插件传来的URL网址,因为其可能经过编码,所以需要解码. 初用System.Web.HttpUtility.UrlDecode()这个函数,但根据用户环境crash场景,发现 ...

  7. eclipse及tomcat设置编码

    新装的eclipse新导入项目会乱码,解决办法: 右击项目选properties,找到resources选择utf-8 改后乱码解决 乱码解决后可能还会有红叉,project clean即可 一劳永逸 ...

  8. Java_8排序(冒泡排序和选择排序)

    1.选择排序 package demo1; public class Demo1 { public static void main(String[] args) { int[] arr= {23,5 ...

  9. sqlserver编号

    select ROW_NUMBER() OVER (ORDER BY 字段 DESC) AS rid,* from 表名

  10. 字符串加u的特殊需求

    #coding:utf-8 L = ['a','b','c'] S = [] for i in L: tmp = str(i).decode('utf-8') S.append(tmp) print ...