私は自分のアプリである程度の進歩を遂げていましたが、困った問題に遭遇しました。誰かが専門知識を提供してくれることを望んでいましたか?
私のアプリは「スコアシート」を意図しています... PivotItems の 1 つは、内部に水平方向の StackPanel を備えた ScrollViewer (水平スクロール、垂直無効) を備えています。この StackPanel には "ScoreSheet" UserControl が含まれています。これは基本的に、さまざまなテキスト ボックスを含むグリッドです。だから...次のようなものです(ScoreSheetアイテムがプログラムでStackPanelに追加されることを除いて):
<controls:PivotItem>
<controls:PivotItem.Header>
<TextBlock Text="score sheet" FontSize="45" Height="80" />
</controls:PivotItem.Header>
<ScrollViewer Width="470" Height="560" VerticalAlignment="Top" x:Name="sv_scoresheets" MaxHeight="560" MinHeight="560" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled" IsHitTestVisible="False">
<StackPanel Name="sp_scoresheets" Orientation="Horizontal">
<local:ScoreSheet></local:ScoreSheet>
<local:ScoreSheet></local:ScoreSheet>
<local:ScoreSheet></local:ScoreSheet>
</StackPanel>
</ScrollViewer>
</controls:PivotItem>
「前へ」ボタンと「次へ」ボタンがページ下部の ApplicationBar にあり、ScrollViewer の左または右のアニメーションをトリガーするという概念がありました (つまり、現在のラウンド * スコアシートの幅)。ScrollViewer で "IsHitTestVisible" を "False" に設定すると、ユーザーは表示された ScoreSheet を手動で奇妙な位置に移動できなくなり、PivotItem 間で左右にスワイプしても期待どおりに機能します。
それはすべてうまくいきました。:)
ただし...問題はScoreSheetコントロールにあります。ユーザーがグリッドにスコアを入力できるように、いくつかのボタンとテキストボックスが必要です。ScrollViewer に「IsHitTestVisible」を設定することで、タップなどが行われます。無視されるだけ。
「IsHitTestVisible」を「True」に設定し、代わりに ScrollViewer の ManipulationStarted イベント (「e.Complete()」を呼び出す) で関数を実行しようとしましたが、ScoreSheet 内のコントロールにアクセスできますが、左にスワイプできません。 /もはやピボットアイテムの間。
それで… 誰か助けてくれませんか?ScrollViewer を移動させる代わりに、アクションを Pivot コントロールに「渡す」ことができるのではないかと考えていました。または、ScrollViewer を「非アクティブ」にして、内部のコントロールをインタラクティブにできる他の方法はありますか?
助けていただければ幸いです。御時間ありがとうございます!