2015-12-01 3 views
0

Мой XAML выглядит примерно следующим образом.Отключить диагональное панорамирование вложенных FlipView

<FlipView> 
    <FlipViewItem> 
     <Grid Height="400" Background="Blue"/> 
    </FlipViewItem> 
    <FlipViewItem> 
     <Grid> 
      <FlipView x:Name="DigestFlipView" Style="{StaticResource DigestViewStyle}"/> 
     </Grid> 
    </FlipViewItem> 
</FlipView> 

А потом в моем DigestViewStype я сделал ее в вертикальном положении следующим образом:.

<Setter Property="ItemsPanel"> 
    <Setter.Value> 
     <ItemsPanelTemplate> 
      <ItemsStackPanel Orientation="Vertical"/> 
     </ItemsPanelTemplate> 
    </Setter.Value> 
</Setter> 

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

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

+0

Первая мысль, захватить событие прикосновения на самой странице и определение направления. В зависимости от этого триггера правильное событие на правильном элементе управления. Возможно, это поможет https://code.msdn.microsoft.com/windowsapps/Manipulations-and-gestures-362b6b59 – Depechie

+0

@Depechie Моя первая мысль тоже. Но не будет ли это включать * все * вручную? Это будет включать в себя привязку точек привязки, непрерывную манипуляцию, прокрутку, инерцию, а что нет. Вероятнее всего, ухудшит производительность! – akshay2000

+0

Я знаю:/вот почему я не задал его как ответ, надеюсь, что что-то будет проще. – Depechie

ответ

1

A ScrollViewer может прокручиваться по горизонтали. A ScrollViewer может прокручиваться по вертикали. И, ScrollViewer может прокручивать как по горизонтали, так и по вертикали - вы вызываете этот третий случай «диагональной» прокруткой.

A ScrollViewer имеет функцию, в которой, когда она начинается с прокрутки по горизонтали или по вертикали, она больше не будет прокручивать противоположное. Похоже, это то, что вы хотите. Эта функция называется «рельсы».

https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.scrollviewer.ishorizontalrailenabled.aspx

https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.scrollviewer.isverticalrailenabled.aspx

Смежные вопросы