Нажатие кнопки на панели приложений для циклического перемещения по панораме в Windows Phone 7 - PullRequest
0 голосов
/ 16 июня 2011

Мои навыки работы с Windows Phone 7, в лучшем случае, ужасны. Мне нужна помощь в разработке функции, которая будет перемещаться к следующему или предыдущему элементу панорамы в элементе управления панорамой, просто касаясь соответствующей кнопки панели приложения.

Обратите внимание на следующее:

<Grid x:Name="Whole" Grid.Row="1">
        <controls:Panorama Name="Chunks" Height="auto" Width="auto">

            <!--Panorama item one-->
            <controls:PanoramaItem x:name="first">
                    <Rectangle Height="auto" Width="auto">
                        <Rectangle.Fill>
                            <ImageBrush x:Name="Logic1"/>
                        </Rectangle.Fill>
                    </Rectangle>
            </controls:PanoramaItem>


            <!--Panorama item two-->
            <controls:PanoramaItem x:name="second">
                <Rectangle Height="auto" Width="auto">
                        <Rectangle.Fill>
                        <ImageBrush x:Name="Logic2"/>
                    </Rectangle.Fill>
                </Rectangle>
            </controls:PanoramaItem>


            <!--Panorama item two-->
            <controls:PanoramaItem x:name="third">
                <Rectangle Height="auto" Width="auto">
                        <Rectangle.Fill>
                        <ImageBrush x:Name="Logic3"/>
                    </Rectangle.Fill>
                </Rectangle>
            </controls:PanoramaItem>

        </controls:Panorama>     
    </Grid>

Как бы я мог написать код-позади, чтобы выбрать текущий вид панорамы и перемещать его влево или вправо одним нажатием кнопки на панели приложения? Будет ли движение сохранено? Это вообще возможно?

Ответы [ 2 ]

3 голосов
/ 16 июня 2011

Вы не!

Технически, вы можете сделать некоторые важные переделки управления панорамой или создать свой собственный, чтобы позволить это. Но не надо.

Panorma создает метод взаимодействия с приложением, который является уникальным для платформы. Пользователи, знакомые с телефоном (т. Е. Они немного его использовали. Это будут все ваши пользователи!) Будут ожидать, что если вы создадите что-то, похожее на панораму (знают ли они, как он называется, или нет), оно должно вести себя как все остальные панорамы, с которыми они взаимодействуют.

Если вы начнете создавать нестандартное поведение и методы взаимодействия, вы рискуете запутать пользователей в том, как использовать ваше приложение. Это никогда не будет хорошей идеей, если вы хотите, чтобы они снова использовали ее.

В проектной документации также явно не рекомендуется использовать панель приложения с панорамой. Есть некоторые технические проблемы, если вы делаете, но это также проблема дизайна здесь. Цель панорамы заключается в том, что весь контент манипулируется напрямую. Кнопки панели приложения также предназначены для взаимодействия с отображаемым контентом, и этот контент зависит от элемента панорамы.

Если вы были вынуждены сделать это (под дулом пистолета!), Вы можете взломать его, перезагрузив ту же страницу и программно установив индекс по умолчанию для нужного элемента. Это было бы ОЧЕНЬ хакерским, но имело бы последствия для фонового изображения и т. Д. Обязательно используйте рецепт нелинейной навигационной службы , если вы пойдете по этому маршруту, чтобы полностью не сломать кнопку возврата.

0 голосов
/ 16 июня 2011

Единственным способом, которым вы можете программно управлять отображаемой страницей панорамы, является добавление и удаление из коллекции элементов.Это не вызывает никаких осложнений и ни в коем случае не поддерживается.

Вы можете установить SelectedItem элемента управления Pivot следующим образом.

Однако, поскольку нескольколюди уже прокомментировали, руководство по стилю определенно и однозначно говорит вам не использовать панель приложения в приложениях Panoramic или Pivot.

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