2

注意:我已经看到了这个,它没有回答这个问题。

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

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

4

2 回答 2

2

由于SelectedItem并且SelectedIndex当前处于private set规则之下,因此您确实无法通过应用程序修改它们。但是,您可以更改DefaultItem属性:

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

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

于 2011-03-06T07:07:31.770 回答
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

于 2011-03-06T20:01:59.537 回答