翻譯|使用教程|編輯:龔雪|2022-07-13 10:08:46.430|閱讀 131 次
概述:本文主要為大家介紹如何在使用DevExpress WinForms控件自定義輔助功能屬性,歡迎下載最新版產(chǎn)品體驗哦~
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
在官方最近的幾個新版發(fā)布周期中,為 DevExpress WinForm 產(chǎn)品線添加了許多創(chuàng)新功能,包括:
一個非常重要(并且不斷增強)的功能是可訪問性的支持,在最近更新的v22.1中包括一個新的 DXAccessible.QueryAccessibleInfo 事件 — 一個強大的功能,它將輔助功能自定義或 UIAutomation 提升到一個全新的水平。本文中將演示一些在過去只能使用內(nèi)部 WinForms 類的后代來解決的可訪問性自定義任務(wù)。
獲取DevExpress WinForms v22.1正式版下載
在這篇文章中將使用Microsoft Inspect檢索各個UI元素的可訪問性信息,盡管與 Accessibility Insights 應(yīng)用程序相比,Inspect 可能已經(jīng)過時,但它仍然是一個強大的工具,可以與完美的實用程序一起使用。
Inspect 是 Windows SDK 安裝中包含的免費工具。 安裝后,您可以在 C:\Program Files (x86)\Windows Kits\10\bin\sdk_build_version\x64 文件夾中找到“inspect.exe”文件。
運行Inspect工具并將鼠標懸停在ColorEdit的放大鏡按鈕上(可以在"Data Editors | Color Edit" 示例模塊中找到示例編輯器)。
如圖所示,可訪問的按鈕名稱是“Glyph”。這是由輔助功能客戶端(例如Windows Narrator)大聲朗讀的名稱,它沒有說明按鈕的實際作用。
要解決此問題并分配更合理的輔助功能名稱,請?zhí)幚硇碌?QueryAccessibleInfo 事件,如下所示。
using DevExpress.Accessibility; public MyForm() { InitializeComponent(); // ... DXAccessible.QueryAccessibleInfo += (s, e) => { if (e.OwnerControl == this.colorEdit1 && e.Name == "Glyph") e.Name = "Magnifier"; }; }
切換到同一示例的"Inplace Grid Cell Editors" 模塊并檢查網(wǎng)格單元名稱,輔助功能樹如下所示:
行簡稱為 "Row 1", "Row 2", "Row 3"等,單元格名稱為“Editor Name Row N”和“Value row N”。雖然這些名稱讓用戶對當前鼠標指針位置有一個模糊的了解,但 QueryAccessibleInfo 事件允許我們指定更準確的行和單元格名稱。
using DevExpress.Accessibility; DXAccessible.QueryAccessibleInfo += (s, e) => { if (e.OwnerControl == gridControl1) { if (e.Role == AccessibleRole.Cell) { if (e.Name.StartsWith("Editor Name")) e.Name = "Editor Name"; else if (e.Name.StartsWith("Value")) e.Name = e.AccessibleObject.Parent.GetChild(0).Value + " Value"; } if (e.Role == AccessibleRole.Row) e.Name = e.AccessibleObject.GetChild(0).Value + " Row"; } /* For builds of v22.1.3 and older if(e.Role == AccessibleRole.ListItem && e.Name.StartsWith("Row")) e.Role = AccessibleRole.Row; if (e.Role == AccessibleRole.Row) e.Name = e.AccessibleObject.GetChild(0).Value; */ };
v22.1.3 和更早的版本需要注釋塊,因為在這些版本中,網(wǎng)格行的 AccessibleRole 錯誤地返回了“ListItem”,官方已經(jīng)在最新版本中修復了這個問題(除了之前實施的許多其他修復)。
DevExpress WinForm擁有180+組件和UI庫,能為Windows Forms平臺創(chuàng)建具有影響力的業(yè)務(wù)解決方案。DevExpress WinForms能完美構(gòu)建流暢、美觀且易于使用的應(yīng)用程序,無論是Office風格的界面,還是分析處理大批量的業(yè)務(wù)數(shù)據(jù),它都能輕松勝任!
DevExpress技術(shù)交流群6:600715373 歡迎一起進群討論
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都網(wǎng)