SurfaceListBox внутри ScatterView - PullRequest
       7

SurfaceListBox внутри ScatterView

0 голосов
/ 27 апреля 2011

У меня есть SurfaceListBox внутри ScatterViewItem.Это нормально, но дело в том, что я хотел бы переместить элемент ScatterviewItem, если я не выбрал ни одного элемента SurfaceListBox.

У меня есть следующий код:

<Grid Background="{StaticResource WindowBackground}" ><br> <s:ScatterView><br> <s:ScatterViewItem ><br> <Viewbox><br> <Grid><br> <Grid.RowDefinitions ><br> <RowDefinition/><br> <RowDefinition /><br> <RowDefinition /><br> </Grid.RowDefinitions ><br> <Label Content="Test" Grid.Row ="0"/><br> <s:SurfaceListBox Grid.Row="1" Height="200" ><br> <s:SurfaceListBoxItem Content ="Test"/><br> <s:SurfaceListBoxItem Content ="Test2"/><br> <s:SurfaceListBoxItem Content ="Test3"/><br> <s:SurfaceListBoxItem Content ="Test4"/><br> </s:SurfaceListBox ><br> <Label Content="Test5" Grid.Row ="2"/><br> </Grid><br> </Viewbox ><br> </s:ScatterViewItem ><br> </s:ScatterView ><br> </Grid>

Если я коснусь какой-либо из меток, откроется Scatterview, и я смогу переместить ее, но если я нажму поверх SurfaceListBox, ScatterView не будет взаимодействовать с моим пальцем (даже если он имеетпункт или нет).

Что мне делать?Я проверил события scatterview и не знаю, как их использовать.

Спасибо заранее,

Пау

Ответы [ 2 ]

0 голосов
/ 28 апреля 2011

Спасибо, Роберт!

Я проверяю PreviewContactChanged объекта ScatterViewItem, но я не знал, что с ним делать. Кто-то дал мне этот пример: http://blog.endquote.com/post/802771198/surfacescrollviewer-behaviors и я попробую.

Еще раз спасибо за ответ! Pau

0 голосов
/ 27 апреля 2011

Сделайте шаг назад и подумайте о том, чего вы действительно хотите достичь ... напишите серию утверждений типа «когда пользователь нажимает на X и движется в направлении Y, тогда должно произойти Z»

Часто это показывает, что в том, что вы пытаетесь сделать, есть конфликты.

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

Тем не менее, технический ответ на ваш вопрос довольно прост ... слушайте PreviewContactChangedна ScatterViewItem.Как только вы определили, что контакт перемещается в правильном направлении на разумное пороговое расстояние, вызовите contact.Capture (scatterViewItem) - это переместит «владение» контактом из списка в scatterviewitem, который затем будет использовать ввод контактапередвигаться.

...