7

WPF では、InputBindings プロパティを使用して、ウィンドウ レベルでキーボード ショートカットをメソッドに簡単にバインドできます。WinRT でこれに相当するものは何ですか? WinRT でキーボード ショートカットをメソッドにバインドする正しい方法は何ですか?

4

2 に答える 2

7

キーボードショートカットについては、こちらで説明しています。アクセスキーアクセラレータキーのどちらかが必要だと思います。

アクセスキーは、アプリのUIへのショートカットです。アクセスキーは、Altキーと文字キーで構成されます。

アクセラレータキーは、アプリコマンドへのショートカットです。アプリには、コマンドに正確に対応するUIがある場合とない場合があります。アクセラレータキーは、Ctrlキーと文字キーで構成されます。

次の例は、メディアの再生、一時停止、および停止ボタンのショートカットキーのアクセス可能な実装を示しています。

<MediaElement x:Name="Movie" Source="sample.wmv"
  AutoPlay="False" Width="320" Height="240"/>

<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">

  <Button x:Name="Play" Margin="1,2"
    ToolTipService.ToolTip="shortcut key: Ctrl+P"
    AutomationProperties.AccessKey="Control P">
    <TextBlock><Underline>P</Underline>lay</TextBlock>
  </Button>

  <Button x:Name="Pause" Margin="1,2"
    ToolTipService.ToolTip="shortcut key: Ctrl+A"
    AutomationProperties.AccessKey="Control A">
    <TextBlock>P<Underline>a</Underline>use</TextBlock>
  </Button>

  <Button x:Name="Stop" Margin="1,2"
    ToolTipService.ToolTip="shortcut key: Ctrl+S"
    AutomationProperties.AccessKey="Control S">
    <TextBlock><Underline>S</Underline>top</TextBlock>
  </Button>

</StackPanel>

<object AutomationProperties.AcceleratorKey="ALT+F" />

重要:AutomationProperties.AcceleratorKeyまたはAutomationProperties.AccessKeyを設定しても、キーボード機能は有効になりません。使用するキーをUIオートメーションフレームワークに報告するだけなので、そのような情報を支援技術を介してユーザーに渡すことができます。キー処理の実装は、XAMLではなくコードで行う必要があります。アプリでキーボードショートカットの動作を実際に実装するには、関連するコントロールにKeyDownまたはKeyUpイベントのハンドラーをアタッチする必要があります。また、アクセスキーの下線付きのテキスト装飾は自動的には提供されません。UIに下線付きのテキストを表示する場合は、ニーモニックの特定のキーのテキストにインラインの下線フォーマットとして明示的に下線を引く必要があります。

コード側の実装の詳細については、@Magielの回答を参照してください。

于 2012-08-18T00:27:42.060 に答える