如何以编程方式切换到不同的PanoramaItem?

时间:2011-03-06 00:52:48

标签: windows-phone-7 gestures panorama-control

注意:我已经看过this但它没有回答这个问题。

我的应用程序首次运行体验,向用户提供了一些解释应用程序功能的不同选项。如果他们选择其中一个选项,我想向他们展示处理该特定功能的PanoramaItem。它恰好是第3项。

因此,Panorama.SelectedItem是只读的。还有其他方法吗?如果没有,我可以伪造它,比如模拟一些手势输入吗?如何做到这一点?

2 个答案:

答案 0 :(得分:2)

由于SelectedItemSelectedIndex目前属于private set规则,实际上您无法通过应用程序修改它们。但是,您可以更改DefaultItem属性:

<PANORAMA_CONTROL>.DefaultItem = <PANORAMA_CONTROL>.Items[1];

由于您将项目设置为列表中的第一项,因此会导致项目重新排列,但除此之外,这是一种可接受的方式,因为它实际上会将项目放在前面用户。

答案 1 :(得分:1)

您可以更改DefaultItem。

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
        string selected = String.Empty;

        //check to see if the selected parameter was passed.
        if (NavigationContext.QueryString.ContainsKey("selected"))
        {
            //get the selected parameter off the query string from MainPage.
            selected = NavigationContext.QueryString["selected"];
        }

        //did the querystring indicate we should go to item2 instead of item1?
        if (selected == "item2")
        {
            //item2 is the second item, but 0 indexed. 
            myPanorama.DefaultItem = myPanorama.Items[1];
        }
        base.OnNavigatedTo(e);
    }

这是我为不同目的而制作的一个例子,但它具有此功能。 http://dl.dropbox.com/u/129101/Panorama_querystring.zip