2012-01-08 24 views
2

私はピボットコントロール付きの読書アプリを設計しています。最初のページから来るときは、右フリックイベントを無効にして、次のページに移動するために左にフリックすることができます。最後のページから来るとき、私は左フリックイベントを無効にしたい。ピボットフリックイベントを無効にするにはどうすればよいですか?

Silverlight ToolkitにlockablePivotコントロールがありますが、このコントロールはすべてのflickイベントを無効にします。誰かに私にいくつかの提案を与えるだろうか?

答えて

0

私はここであなたのデザインの決定を考え直すべきだと思います。地下鉄の設計言語はピボットの仕組みを示し、人々はこれに慣れています。これを変更すると、ピボットの周りを自由に回すことができると予想されるため、ユーザーの体験が悪化します。

+0

あなたの助言のためのThans。実際にピボットを書き換えているので、ピボットコントロールのようには見えません。 – ellic

0

このようなPivotItemを使用すると、UIガイドに反するので、実際に実装するべきではありません。しかし、理論のために何もしなければ、このようなことをすることができます。

最初と最後のPivotItemに名前を付けます。

<controls:PivotItem Header="Item1" Name="first"> 
... 
<controls:PivotItem Header="Item5" Name="last"> 

ピボットのLoadingPivotItemLoadedPivotItemイベントを処理します。

//class level variable we use for the current pivot 
PivotItem currentItem = null; 

private void Pivot_LoadingPivotItem(object sender, PivotItemEventArgs e) 
{ 
    //if the next item is going to be "first" pivot 
    //and the previous item was the "last" pivot... 
    if (e.Item == first && currentItem == last) 
    { 
     //...reset the Pivot back to the last one. 
     mainPivot.SelectedItem = last; 
    } 

    //same theory as above but checking if we're 
    //sliding to the last one from the first one 
    if (e.Item == last && currentItem == first) 
    { 
     mainPivot.SelectedItem = first; 
    } 
} 

private void mainPivot_LoadedPivotItem(object sender, PivotItemEventArgs e) 
{ 
    //once the pivot is loaded, update the currentItem 
    currentItem = e.Item; 
} 
+0

2つのPivotItemしか持たない限り、問題なく動作します。 –

関連する問題