訪問鍵是鍵盤快捷方式,可讓使用者透過鍵盤快速流覽和與應用程式的可見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為 。
如需存取金鑰的詳細資訊,請參閱 存取金鑰。