Windows の VisualElement アクセス キー

サンプルのダウンロードサンプルのダウンロード

アクセス キーは、ユーザーがタッチやマウスを使用する代わりにキーボードを介してアプリの目に見える UI をすばやく操作し、操作するための直感的な方法を提供することで、ユニバーサル Windows プラットフォーム (UWP) 上のアプリの使いやすさとアクセシビリティを向上させるキーボード ショートカットです。 これらは Alt キーと 1 つ以上の英数字キーの組み合わせで、通常は順番に押されます。 キーボード ショートカットは、1 文字の英数字を使用するアクセス キーに対して自動的にサポートされます。

アクセス キーのヒントは、アクセス キーを含むコントロールの横に表示されるフローティング バッジです。 各アクセス キー ヒントには、関連付けられているコントロールをアクティブにする英数字キーが含まれています。 ユーザーが Alt キーを押すと、アクセス キーのヒントが表示されます。

この UWP プラットフォーム固有の は、 のアクセス キー VisualElementを指定するために使用されます。 これは XAML で使用されます。添付プロパティをVisualElement.AccessKey英数字の値に設定し、必要に応じて添付プロパティを列挙のAccessKeyPlacement値に設定しVisualElement.AccessKeyVerticalOffsetVisualElement.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、 のアクセス キー値を設定するために使用されますVisualElementXamarin.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できません。

さらに、、GetAccessKeyGetAccessKeyPlacementGetAccessKeyHorizontalOffset、および GetAccessKeyVerticalOffset の各メソッドを使用して、アクセス キーの値とその場所を取得できます。

その結果、Alt キーを押すと、アクセス キーを定義する VisualElement インスタンスの横にアクセス キーヒントを表示できます。

VisualElement アクセス キー プラットフォーム固有

ユーザーがアクセス キーをアクティブにすると、Alt キーを押し、その後にアクセス キーを押すと、 の既定の VisualElement アクションが実行されます。 たとえば、ユーザーが で Switchアクセス キーをアクティブ化すると、 Switch が切り替えられます。 ユーザーが でアクセス キー Entryをアクティブにすると、フォーカスが Entry 取得されます。 ユーザーが で Buttonアクセス キーをアクティブ化すると、イベントのイベント ハンドラー Clicked が実行されます。

警告

既定では、モーダル ダイアログが表示されている場合は、ダイアログの背後にあるページで定義されているアクセス キーをアクティブ化できます。 ただし、このシナリオでは、アクセス キーを無効にするためにカスタム ロジックを記述できます。 これは、UWP プロジェクトのDispatcher.AcceleratorKeyActivatedクラスで イベントをMainPage処理し、イベント ハンドラーでモーダル ダイアログが表示されるときにイベント引数の プロパティを にtrue設定Handledすることで実現できます。

アクセス キーの詳細については、「アクセス キー」を参照してください。