Windows の VisualElement アクセス キー
アクセス キーは、ユーザーがタッチやマウスを使用する代わりにキーボードを介してアプリの目に見える UI をすばやく操作し、操作するための直感的な方法を提供することで、ユニバーサル Windows プラットフォーム (UWP) 上のアプリの使いやすさとアクセシビリティを向上させるキーボード ショートカットです。 これらは Alt キーと 1 つ以上の英数字キーの組み合わせで、通常は順番に押されます。 キーボード ショートカットは、1 文字の英数字を使用するアクセス キーに対して自動的にサポートされます。
アクセス キーのヒントは、アクセス キーを含むコントロールの横に表示されるフローティング バッジです。 各アクセス キー ヒントには、関連付けられているコントロールをアクティブにする英数字キーが含まれています。 ユーザーが Alt キーを押すと、アクセス キーのヒントが表示されます。
この UWP プラットフォーム固有の は、 のアクセス キー VisualElement
を指定するために使用されます。 これは XAML で使用されます。添付プロパティをVisualElement.AccessKey
英数字の値に設定し、必要に応じて添付プロパティを列挙のAccessKeyPlacement
値に設定しVisualElement.AccessKeyVerticalOffset
、VisualElement.AccessKeyHorizontalOffset
添付プロパティを にdouble
、添付プロパティを にdouble
設定VisualElement.AccessKeyPlacement
します。
<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
、 のアクセス キー値を設定するために使用されますVisualElement
。Xamarin.Forms.PlatformConfiguration.WindowsSpecific
メソッドは 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 プロジェクトのDispatcher.AcceleratorKeyActivated
クラスで イベントをMainPage
処理し、イベント ハンドラーでモーダル ダイアログが表示されるときにイベント引数の プロパティを にtrue
設定Handled
することで実現できます。
アクセス キーの詳細については、「アクセス キー」を参照してください。