tor应该宣布更改。UIA通知事件为您的应用程序提供了一种方式来引发UIA事件,这会导致讲述人根据您为事件提供的文本简单地发布通知,而无需在UI中使用相应的控件。在某些情况下,这可能是一种直接提高应用程序可访问性的方法。有关UIA通知事件的更多信息,请参阅此博客文章。
通知可能派上用场的一个示例是通知可能需要一些时间的某个过程的进度。
提升通知事件的示例:
Windows窗体 - 键盘访问的工具提示
目前,只能通过将鼠标指针移动到控件中来触发控制工具提示。此新功能使键盘用户可以通过使用Tab键或带有或不带修饰键的箭头键来聚焦控件来触发控件的工具提示。此特定辅助功能增强需要额外的AppContextSwitch,如以下示例所示:
1.创建一个新的WinForms应用程序。
2.将以下XML添加到App.config文件中。
3.将几个按钮和一个ToolTip控件添加到应用程序的表单中。
4.设置按钮的工具提示。
5.运行应用程序并使用键盘在按钮之间导航:
Windows窗体 - DataGridView控制可访问的层次结构更改
目前,可访问的层次结构(UI自动化树)将编辑框树元素显示为当前编辑的单元格的子元素,但不显示为DataGridView的根子元素。可以使用Inspect工具观察层次结构树更新:
WCF - ServiceHealthBehavior
健康端点具有许多优点,并且编排工具广泛使用它来根据服务健康状况管理服务。监控工具还可以使用运行状况检查来跟踪和警告服务的可用性和性能,并将其作为早期问题指标。
ServiceHealthBehavior是一种扩展IServiceBehavior的WCF服务行为。添加到ServiceDescription.Behaviors集合后,它将启用以下内容:
- 使用HTTP响应代码返回服务运行状况:可以在查询字符串中指定HTTP / GET运行状况探测请求的HTTP状态代码。
- 发布服务运行状况:使用“?运行状况”查询字符串,使用HTTP / GET请求显示服务特定的详细信息,包括服务状态和节流计数和容量。在故障排除错误行为的WCF服务时,了解并轻松访问所显示的信息非常重要。
配置ServiceHealthBehavior:
有两种方法可以公开运行状况端点并发布WCF服务运行状况信息:使用代码或使用配置文件。
- 使用代码启用运行状况端点
- 使用config启用健康端点
使用HTTP响应代码返回服务运行状况:
可以通过查询参数(OnServiceFailure,OnDispatcherFailure,OnListenerFailure,OnThrottlePercentExceeded)查询运行状况。可以为每个查询参数指定HTTP响应代码(200 - 599)。如果省略查询参数的HTTP响应代码,则默认使用503 HTTP响应代码。
查询参数和示例:
- OnServiceFailure:
- 示例:通过查询https:// contoso:81 / Service1?health&OnServiceFailure = 450,当ServiceHost.State大于CommunicationState.Opened时,将返回450 HTTP响应状态代码。
- OnDispatcherFailure:
- 示例:通过查询https:// contoso:81 / Service1?health&OnDispatcherFailure = 45 5,当任何通道调度程序的状态大于CommunicationState.Opened时,将返回455 HTTP响应状态代码。
- OnListenerFailure:
- 示例:通过查询https:// contoso:81 / Service1?health&OnListenerFailure = 4 65,当任何通道侦听器的状态大于CommunicationState.Opened时,将返回465 HTTP响应状态代码。
- OnThrottlePercentExceeded:指定触发响应的百分比{1 - 100}及其HTTP响应代码{200 - 599}。
- 示例:通过查询https:// contoso:81 / Service1?health&OnThrottlePercentExceeded = 70:350,95:500,当节流百分比等于或大于95%时,返回500响应代码; 当百分比等于或大于70%且小于95%时,返回350; 否则,返回200。
出版服务健康状况:
启用运行状况端点后,可以在html中显示服务运行状况(通过指定查询字符串:https:// contoso:81 / Service1?运行状况)或xml(通过指定查询字符串:https:// contoso: 81 / Service1?health&Xml)格式。https:// contoso:81 / Service1?health&NoContent返回空的html页面。
注意:
始终限制对服务运行状况终结点的访问是最佳做法。您可以使用以下机制限制访问:
- 为健康端点使用不同于其他服务的端口,并使用防火墙规则来控制访问。
- 将所需的身份验证和授权添加到运行状况端点绑定。
WPF - 屏幕旁白者不再宣布具有折叠或隐藏可见性的元素
屏幕阅读器不再宣布具有折叠或隐藏可见性的元素。如果向用户宣布这些元素,则包含具有折叠或隐藏可见性的元素的用户界面可能被屏幕阅读器误传。在.NET Framework 4.8中,WPF不再包含UIAutomation树的Control View中的Collapsed或Hidden元素,因此屏幕阅读器无法再宣布这些元素。
WPF - SelectionTextBrush属性,用于非基于Adorner的文本选择
在.NET Framework 4.7.2中,WPF添加了在不使用adorner层的情况下绘制TextBox和PasswordBox文本选择的功能(参见此处)。此场景中所选文本的前景色由SystemColors.HighlightTextBrush决定。
在.NET Framework 4.8中,我们添加了一个新属性SelectionTextBrush,允许开发人员在使用基于非装饰器的文本选择时为所选文本选择特定画笔。
此属性仅适用于启用了基于非装饰器的文本选择的WPF应用程序中的TextBoxBase派生控件和PasswordBox。它不适用于RichTextBox。如果未启用基于非装饰器的文本选择,则会忽略此属性。
要使用此属性,只需将其添加到XAML代码并使用适当的画笔或绑定。
生成的文本选择如下所示:
您可以结合使用SelectionBrush和SelectionTextBrush来生成您认为合适的背景和前景的任何颜色组合。
WPF - 高DPI增强功能
WPF在.NET 4.8中增加了对Per-Monitor V2 DPI感知和混合模式DPI扩展的支持。有关这些Windows概念的更多信息,请参见此处。
WPF中最新的Per监视器应用程序开发指南指出,只有纯WPF应用程序可以在高DPI WPF应用程序中无缝工作,并且不完全支持Hosted HWND |