翻譯|使用教程|編輯:龔雪|2022-07-13 10:08:46.430|閱讀 131 次
概述:本文主要為大家介紹如何在使用DevExpress WinForms控件自定義輔助功能屬性,歡迎下載最新版產品體驗哦~
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
在官方最近的幾個新版發布周期中,為 DevExpress WinForm 產品線添加了許多創新功能,包括:
一個非常重要(并且不斷增強)的功能是可訪問性的支持,在最近更新的v22.1中包括一個新的 DXAccessible.QueryAccessibleInfo 事件 — 一個強大的功能,它將輔助功能自定義或 UIAutomation 提升到一個全新的水平。本文中將演示一些在過去只能使用內部 WinForms 類的后代來解決的可訪問性自定義任務。
獲取DevExpress WinForms v22.1正式版下載
在這篇文章中將使用Microsoft Inspect檢索各個UI元素的可訪問性信息,盡管與 Accessibility Insights 應用程序相比,Inspect 可能已經過時,但它仍然是一個強大的工具,可以與完美的實用程序一起使用。
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)大聲朗讀的名稱,它沒有說明按鈕的實際作用。
要解決此問題并分配更合理的輔助功能名稱,請處理新的 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" 模塊并檢查網格單元名稱,輔助功能樹如下所示:
行簡稱為 "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 和更早的版本需要注釋塊,因為在這些版本中,網格行的 AccessibleRole 錯誤地返回了“ListItem”,官方已經在最新版本中修復了這個問題(除了之前實施的許多其他修復)。
DevExpress WinForm擁有180+組件和UI庫,能為Windows Forms平臺創建具有影響力的業務解決方案。DevExpress WinForms能完美構建流暢、美觀且易于使用的應用程序,無論是Office風格的界面,還是分析處理大批量的業務數據,它都能輕松勝任!
DevExpress技術交流群6:600715373 歡迎一起進群討論
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網