Программный переход к следующему элементу панорамы в списке нажмите - PullRequest
1 голос
/ 13 февраля 2012

Можно ли перейти к следующей странице элемента панорамы при щелчке элемента списка?

Я пробовал это ниже, но это дает мне ошибку только для чтения

РЕДАКТИРОВАТЬ: я выяснил, как этого добиться, но он устанавливает мое фоновое изображение так же, как это было бы в первом пункте, кто-нибудь знает способ обойти это?

private void myListBox_Tap(object sender, GestureEventArgs e)
 {
      pano.SelectedItem = 1;
 }

PanoramaPage1.xaml

<!--LayoutRoot contains the root grid where all other page content is placed-->
<Grid x:Name="LayoutRoot">

    <controls:Panorama Name="pano" Title="Trending Now" ItemsSource="{Binding}" FontSize="12">

        <!--Assigns a background image to the Panorama control.-->
        <controls:Panorama.Background>
            <ImageBrush ImageSource="/TrendApp;component/Images/pan.png" />
        </controls:Panorama.Background>
        <controls:Panorama.TitleTemplate>
        <DataTemplate>
                    <TextBlock Text="{Binding Content, RelativeSource={RelativeSource TemplatedParent}}" FontSize="100" Margin="0,50,0,0" />
                </DataTemplate>
            </controls:Panorama.TitleTemplate>
        <controls:Panorama.HeaderTemplate >
            <DataTemplate>
                <TextBlock Text="{Binding Content, RelativeSource={RelativeSource TemplatedParent}}" FontSize="40" Margin="0,50,0,0" />
            </DataTemplate>
        </controls:Panorama.HeaderTemplate >

        <!--Panorama item one-->

        <controls:PanoramaItem Name="p1" Header="Trends">
            <Grid>

                <ListBox ItemsSource="{Binding Trend}"  Foreground="White" Height="494" HorizontalAlignment="Center" Margin="2,12,-13,0" Name="myListbox" VerticalAlignment="Top" Width="431"  TabIndex="10" Tap="myListBox_Tap">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <Grid>
                                <TextBlock Margin="0,0,0,10" TextWrapping="Wrap" FontSize="26" Foreground="White" HorizontalAlignment="Left" Name="tblTrend" Text="{Binding TrendItemTag}" VerticalAlignment="Top" />
                                <TextBlock Margin="0,0,0,10" TextWrapping="Wrap" FontSize="26"  HorizontalAlignment="Right" Name="tblTrend2" Text=">" VerticalAlignment="Top" />

                                <Line X1="0" X2="500" Y1="0" Y2="0" VerticalAlignment="Bottom" Fill="White" Opacity="1" Stroke="White" StrokeThickness="3" Margin="0" />
                            </Grid>
                        </DataTemplate>

                    </ListBox.ItemTemplate>
                </ListBox>

            </Grid>
        </controls:PanoramaItem>

        <!--Panorama item two-->
        <controls:PanoramaItem Name="item2" Header="" FontSize="10">

            <Grid/>
        </controls:PanoramaItem>
        <!--Panorama item three.-->
        <controls:PanoramaItem Header="Search">
            <Grid>
                <TextBox Height="75" HorizontalAlignment="Left" Margin="96,12,0,0" Name="textBox1" Text="Search" VerticalAlignment="Top" Width="235" />
            </Grid>
        </controls:PanoramaItem>
    </controls:Panorama>
</Grid>

Спасибо за вашу помощь

Ответы [ 2 ]

2 голосов
/ 13 февраля 2012

нашел мой ответ здесь

Мне нужно MyPanorama.DefaultItem = MyPanorama.Items[1];

0 голосов
/ 13 февраля 2012

Извините, SelectedIndex и SelectedItem доступны только для чтения.Единственный обходной путь, о котором я знаю, это установка DefaultItem следующим образом:

pano.DefaultItem = myPanoramaItem;

См. Также эту тему

Этовсе довольно уродливо, потому что это не делает анимацию.С другой стороны: я не думаю, что контроль когда-либо предназначался для использования таким образом.Я использую этот способ установки текущего элемента, только когда возвращаюсь на страницу, думая о кнопке «назад» или выходя из спящего режима.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...