Windows 上的 VisualElement 存取金鑰
訪問鍵是鍵盤快捷方式,可讓使用者透過鍵盤快速流覽和與應用程式的可見UI互動,而不是透過觸控或滑鼠,改善 通用 Windows 平台(UWP) 應用程式的可用性和輔助功能。 它們是Alt鍵和一或多個英數位元按鍵的組合,通常會循序按下。 使用單一英數位元的訪問鍵會自動支援鍵盤快捷方式。
存取金鑰秘訣是控件旁顯示的浮動徽章,其中包含訪問鍵。 每個訪問鍵提示都包含啟用相關聯控件的英數位元索引鍵。 當使用者按下 Alt 鍵時,就會顯示存取鍵提示。
這個UWP平臺特定是用來指定的 VisualElement
存取金鑰。 它會在 XAML 中取用,方法是將附加屬性設定VisualElement.AccessKey
為英數位元值,並選擇性地將附加屬性設定為 列舉值AccessKeyPlacement
、VisualElement.AccessKeyHorizontalOffset
附加屬性至 double
,並將VisualElement.AccessKeyVerticalOffset
附加屬性設定VisualElement.AccessKeyPlacement
為 double
:
<TabbedPage ...
xmlns:windows="clr-namespace:Xamarin.Forms.PlatformConfiguration.WindowsSpecific;assembly=Xamarin.Forms.Core">
<ContentPage Title="Page 1"
windows:VisualElement.AccessKey="1">
<StackLayout Margin="20">
...
<Switch windows:VisualElement.AccessKey="A" />
<Entry Placeholder="Enter text here"
windows:VisualElement.AccessKey="B" />
...
<Button Text="Access key F, placement top with offsets"
Margin="20"
Clicked="OnButtonClicked"
windows:VisualElement.AccessKey="F"
windows:VisualElement.AccessKeyPlacement="Top"
windows:VisualElement.AccessKeyHorizontalOffset="20"
windows:VisualElement.AccessKeyVerticalOffset="20" />
...
</StackLayout>
</ContentPage>
...
</TabbedPage>
或者,您可以使用 Fluent API 從 C# 取用它:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.WindowsSpecific;
...
var page = new ContentPage { Title = "Page 1" };
page.On<Windows>().SetAccessKey("1");
var switchView = new Switch();
switchView.On<Windows>().SetAccessKey("A");
var entry = new Entry { Placeholder = "Enter text here" };
entry.On<Windows>().SetAccessKey("B");
...
var button4 = new Button { Text = "Access key F, placement top with offsets", Margin = new Thickness(20) };
button4.Clicked += OnButtonClicked;
button4.On<Windows>()
.SetAccessKey("F")
.SetAccessKeyPlacement(AccessKeyPlacement.Top)
.SetAccessKeyHorizontalOffset(20)
.SetAccessKeyVerticalOffset(20);
...
方法VisualElement.On<Windows>
會指定這個平臺專用只會在 通用 Windows 平台 上執行。 命名空間 VisualElement.SetAccessKey
中的 Xamarin.Forms.PlatformConfiguration.WindowsSpecific
方法可用來設定 的 VisualElement
存取金鑰值。 方法 VisualElement.SetAccessKeyPlacement
,選擇性地指定用來顯示存取金鑰提示的位置,列舉 AccessKeyPlacement
提供下列可能的值:
Auto
– 表示存取金鑰提示放置將由作業系統決定。Top
– 表示存取金鑰提示會出現在 的VisualElement
上邊緣上方。Bottom
– 表示存取金鑰提示會出現在 的下邊緣VisualElement
下方。Right
– 表示存取金鑰提示會出現在 的右邊緣VisualElement
。Left
– 表示存取鍵提示會出現在 左邊緣VisualElement
的左邊。Center
– 表示存取金鑰提示會出現在 的中央VisualElement
。
注意
一般而言, Auto
主要提示位置就已足夠,其中包括對調適型使用者介面的支援。
VisualElement.SetAccessKeyHorizontalOffset
和 VisualElement.SetAccessKeyVerticalOffset
方法可用於更細微地控制存取密鑰提示位置。 方法的 SetAccessKeyHorizontalOffset
自變數會指出將訪問鍵提示向左或向右移動多遠,而方法的 SetAccessKeyVerticalOffset
自變數則表示將訪問鍵提示向上或向下移動多遠。
注意
設定存取金鑰位置時,無法設定 Auto
存取金鑰提示位移。
此外, GetAccessKey
、 GetAccessKeyPlacement
、 GetAccessKeyHorizontalOffset
和 GetAccessKeyVerticalOffset
方法可用來擷取存取密鑰值及其位置。
結果是,您可以按下 Alt 鍵,在定義存取鍵的任何 VisualElement
實例旁邊顯示存取鍵提示:
當使用者啟動存取鍵時,按下 Alt 鍵後接存取鍵,就會執行的預設動作 VisualElement
。 例如,當使用者在 上 Switch
啟用存取金鑰時, Switch
會切換 。 當使用者在 上 Entry
啟用存取金鑰時,取得 Entry
焦點。 當使用者在 上 Button
啟動存取密鑰時,就會執行 事件的事件處理程式 Clicked
。
警告
根據預設,當模式對話框顯示任何在對話框後方頁面上定義的訪問鍵時,仍可啟動。 不過,您可以撰寫自定義邏輯來停用此案例中的存取密鑰。 這可以藉由處理 Dispatcher.AcceleratorKeyActivated
UWP 項目類別中的 MainPage
事件,以及在事件處理程式中,將模式對話框顯示時事件自變數true
的 屬性設定Handled
為 。
如需存取金鑰的詳細資訊,請參閱 存取金鑰。