2

アイテムのリストを表示するWindowsストアアプリケーションでFlipViewを使用しています。FlipViewは、アイテムを水平軸上で反転させる必要があります(これは機能します)。また、アイテムはScrollViewer内にあり、多くの場合、ディスプレイの高さよりも高いため、垂直スクロールバーがあります。

ユーザーが上下の矢印キーを使用してスクロールできるようにしたいのですが、左右の矢印キーを使用して反転します。

現在、すべての矢印キーがフリップをトリガーします。

ビヘイビアーを使用してKeyDownイベントに登録するなど、さまざまなことを試しましたが、矢印キーがKeyDownイベントをトリガーしていません。

CoreWindow.KeyDownイベントにも登録しようとしましたが、イベントはすでにHandledに到着しているため、flipviewが反転するのを防ぐために何もできません。

助言がありますか?

4

2 に答える 2

0

IsTabStopプロパティをfalseに設定することで、FlipViewItemsの動作を変更できます。

 <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
    <Grid.Resources>
        <Style TargetType="FlipViewItem">
            <Setter Property="IsTabStop" Value="False"/>
        </Style>
    </Grid.Resources>

    <FlipView x:Name="FlippOut">
    ...

これにより、FlipViewItemのスタイルがタブストップではないように暗黙的に設定されます。そうすれば、scrollviewerはすべてのタブストップを取得します。次に、ScrollViewerのAddHandlerを使用して、KeyDownイベントをキャプチャし、左または右の場合は、フリップビューを反転します。

ただし、FlipViewItemでこのプロパティを変更すると、SelectedIndexを手動で設定した場合など、特定のシナリオでFlipViewがちらつくように見えます(この場合に問題になるかどうかはわかりません)。ちらつきについてMSDNフォーラムに投稿しましたが、それがバグかどうかを確認するための返信を待っています:http ://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/ ffd5fe5d-de6e-4f22-82b7-e7cd82d488ad

試してみる価値があるかもしれません。

于 2013-02-04T23:35:23.217 に答える
0

標準のキーイベントを使用できないようです。

試してみてください: XAML で、FlipView の後に Grid を配置します。だからあなたは持っているでしょう

<FlipView>...</FlipView>
<Grid KeyUp="grid_KeyUp" />

このイベントでは、キャプチャできる場合はイベントを処理済みに設定して、FlipView にバブリングしないようにします。次に、適切なキーを処理することで、このイベント ハンドラーを使用してフリップビューを手動で移動 (またはスクロール) できます。

于 2012-12-18T14:25:14.290 に答える