2011-11-15 6 views
1

Windows Phone 7のピボットコントロールに問題があります。私が開発しているアプリケーションでは、標準スワイプを使用してピボットページを変更できるほか、ピボットコントロールもボタンSelectedIndexを設定することによって押されます。移行中にピボットの入力を無効にしますか?

移行中に画面をタップすると、ボタンが登録されます。アニメーションが確定するまで、このボタンは間違ったボタン用です。 (つまり、SelectedItemが画面の右側のタップを増やしている場合は、左側のボタンが選択されます)

実装されているアプリケーションはクイズアプリケーションです。この段階では、ピボットコントロールを置き換えるための書き換えは実際には不可能です。これは、アプリがこの1つの問題からほぼ完全に離れており、ピボットは必要な機能をすべて提供しているからです。

したがって、アニメーションの進行中に入力が通過するのを止める方法はありますか?

ピボットでIsEnabledを設定しようとしましたが、アニメーションがすべての流動性を失います。スクロールするのではなく次のアイテムに点滅するだけです。これらのタスクはいずれもUIスレッド上で実行されるためです。

他に解決策がありますか?

答えて

3

変更のIsHitTestVisibleプロパティをそのようなタップを防止するためにPivotItemの変更中にピボットする。

ピボットがUnloadingPivotItemの場合はfalseに設定してからLoadedPivotitemイベントで有効にします。

1

短いテストの後、Pivo​​t.LoadedPivotItemイベントがアニメーションが完了した後に発生するように見えます。つまり、ブール値フィールドを使用して、アニメーションの進行中にボタンイベントハンドラを抑制することができます。

あなたは、選択したインデックスを設定する場合:LoadedPivotItemイベントに続いて

_suppressEvents = true; 
uxPivot.SelectedIndex = index; 

を:

_suppressEvents = false; 

とボタンのイベントに:

private void button_Click(object sender, RoutedEventArgs e) 
{ 
    if (!_suppressEvents) 
    { 
     ... 
    } 
} 
0

Aリトル元の答えに追加..あなただけのisLocked = true

を設定することで、ボタン

//unlock 
SettingsPivot.IsLocked = false; 
//navigate 
SettingsPivot.SelectedItem = OtherSettings; 
//lock new pivot 
SettingsPivot.IsLocked = true; 
のためにも、それぞれのピボットをロックすることができます
関連する問題