如何确定哪个枢轴项最常导航

时间:2014-01-18 07:49:29

标签: c# xaml windows-phone-7 windows-phone-8

我正在使用一个Pivot Control,它在页面上包含5个Pivot项目。用户只能向右或向左滑动以获得这些,但是从起始枢轴,index = 0,我希望能够确定用户通常去哪个方向以及该方向的距离。由于我的每个枢轴都在加载多个数据,并且用户可以从起始索引向左或向右滑动,我的最终目标是确定用户在任一方向上移动的频率,以及移动距离和加载这些数据项的频率第一。对于实例,如果我的支点是

MainPage.xaml中

<phone:Pivot x:Name="myPivot">
    <phone:PivotItem Header="one"/>
    <phone:PivotItem Header="two"/>
    <phone:PivotItem Header="three"/>
    <phone:PivotItem Header="four"/>
    <phone:PivotItem Header="five"/>
</phone:Pivot>

MainPage.xaml.cs中

private async void MainPage_Loaded(object sender, RoutedEventArgs e)
    {
        await RenderAsync();
    }

private async Task RenderAsync()
    {
        if (!Busy)
        {
            Busy = true;

            int side = 136;

            try
            {
                using (Bitmap bitmap = await App.Model.RenderBitmapAsync(side))
                {
                    if (Settings.LoadDynamically.Value == false)
                    {
                        await RenderAsync(bitmap, side, App.Model.One, OneWrapPanel);
                        await RenderAsync(bitmap, side, App.Model.Two, TwoWrapPanel);
                        await RenderAsync(bitmap, side, App.Model.Three, ThreeWrapPanel);
                        await RenderAsync(bitmap, side, App.Model.Four, FourWrapPanel);
                        await RenderAsync(bitmap, side, App.Model.Fiv, FiveWrapPanel);
                    }
                    else
                    {
                        //Custom order goes here, load best order
                    }

                }
            }
            catch (Exception)
            {
                NavigationService.GoBack();
            }

            Busy = false;
        }
    }

其中第一个轴项为索引0,第五个轴索引为4,从第一个轴开始,我希望能够确定用户导航到枢轴5(向左)和枢轴的次数二(右)。从这里开始,我再次想知道用户朝这个方向前进的次数。因此,如果用户转到5然后是4,也是从2到3。一旦收集到这些数据,我希望能够通过为每种情况设置某种权重来确定加载每个枢轴项的最佳顺序。

1 个答案:

答案 0 :(得分:0)

我认为没有其他办法。这很简单:

private void appPivot_LoadedPivotItem(object sender, PivotItemEventArgs e)
{
  startUse = DateTime.Now;
}

private void appPivot_UnloadingPivotItem(object sender, PivotItemEventArgs e)
{
  TimeSpan pivotUsage = DateTime.Now - startUse;
  // Save it somewhere regarding to SelectedPivotItem
}

但是,在地铁设计指南(我记得)中不推荐改变顺序,但我个人认为这是一个好主意。