Windows 上の VisualElement アクセス キー
アクセス キーは、ユニバーサル Windows プラットフォーム (UWP) 上のアプリの使いやすさとアクセシビリティを向上させるキーボード ショートカットです。これにより、ユーザーはタッチやマウスを使う代わりに、直感的な方法でキーボードを使用してアプリの表示 UI をすばやく操作したり操作したりできます。 Alt キーと 1 つ以上の英数字キーを組み合わせたもので、通常は順番に押されます。 1 つの英数字を使用するアクセス キーでは、キーボード ショートカットが自動的にサポートされます。
アクセス キーのヒントは、アクセス キーを含むコントロールの横に表示されるフローティング バッジに示されます。 各アクセス キーのヒントには、関連のあるコントロールをアクティブにする英数字キーが含まれています。 ユーザーが Alt キーを押すと、アクセス キーのヒントが表示されます。
この UWP プラットフォーム固有は、VisualElement
のアクセスキーを指定するために使用されます。 これは、XAML で英数字の値への VisualElement.AccessKey
添付プロパティを設定し、オプションで AccessKeyPlacement
列挙型の値への VisualElement.AccessKeyPlacement
添付プロパティ、double
への VisualElement.AccessKeyHorizontalOffset
添付プロパティ、double
へのVisualElement.AccessKeyVerticalOffset
添付プロパティを設定して使用されます:
<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 プラットフォームでのみ実行されるように指定します。 Xamarin.Forms.PlatformConfiguration.WindowsSpecific
メソッドは VisualElement.SetAccessKey
名前空間で、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
イベントのイベント ハンドラーが実行されます。
警告
既定では、モーダル ダイアログが表示されている場合、ダイアログの背後にあるページで定義されているアクセス キーをアクティブ化できます。 ただし、このシナリオでは、アクセス キーを無効にするためにカスタム ロジックを記述できます。 これを実現するには、UWP プロジェクトの MainPage
クラスで Dispatcher.AcceleratorKeyActivated
イベントを処理し、イベント ハンドラーで、モーダル ダイアログが表示されたときにイベント引数の Handled
プロパティを true
に設定します。
アクセス キーの詳細については、「アクセス キー」を参照してください。